Power Builder - Obtener Nº de meses entre varios años

   
Vista:

Obtener Nº de meses entre varios años

Publicado por Jose (18 intervenciones) el 03/11/2008 23:10:48
Hola amigos foreros espero puedan ayudarme y cualquier sugerencia para resolver mi problema lo tomare en cuenta.
Bueno yo quiero obtener el total de meses entre dos fechas de obtener lo obtengo pero no el mes exacto. como todos saben el numero de dias de un mes varia ya que puede ser 28,29, para febrero, y para los otros mese 30,31.
aqui les paso el script que tengo para obtener el numero de meses pero no me obtine el numero de meses exacto porque hago una suposicion que todos los meses tiene 30 dias.

date ld_fecini, ld_fecini
long ll_dias //numero de dias
integer li_nmes //numero de meses
ld_fecini = '07/08/2007' //fecha inicio
ld_fecfin = '30/07/2019' //fecha fin
ll_dias = daysafter(ld_fecini, ld_fecfin) //total dias en las 2 fechas
li_nmes = ll_dias / 30 //obtengo el numero de meses suponiendo que todo los
// meses traen 30 dias

en este pequeño script en li_nmes = 145 pero en realidad sacando manualmente es 143 meses.

pero como hago para obtener el numero de meses exacto.
gracias de antemano por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antonio

RE:Obtener Nº de meses entre varios años

Publicado por Antonio (1114 intervenciones) el 04/11/2008 01:27:36
Hola jose:

mira, si partes de la fecha 07/08/2007 primero debes sacar los meses de ese año, ejemplo:

El año tiene 12 meses, obtenemos el mes de acuerdo a la fecha 07/08/2007, de esta manera:

integer li_mesactual
integer li_num_meses
integer li_total_meses
integer li_axo_acutal, li_axo_final, li_axos_totales

li_mesactual = month ( '07/08/2008')

Lo restamos del total de meses en el año:

li_num_meses = ( 12 - li_mesactual ) + 1 // esto nos da 5

luego determinamos cuantos años hay desde el año actual hasta el año de la fecha final

li_axo_acutal = Year (Date ( '07/08/2007' ) )

determinamos el año final:

li_axo_final = Year (Date ( ''30/07/2019'' ) )

luego determinamos los años totales:

li_axos_totales = ( li_axo_final - li_axo_actual )

por ultimo determinamos el total de meses:

li_total_meses = ( li_axos_totales * 12 )

al final sumamos los meses totales mas los meses restantes del año en curso:

li_num_meses += li_total_meses

Espero te sirva....

Saludos desde México
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar