
CALCULO DE LA EDAD EN AÑOS, MESES, DIAS BISIESTOS
Publicado por Manuelo (12 intervenciones) el 02/10/2003 22:59:59
Por favor un HELP tengo que retornar de una funcion que me pasa dos fechas, el tiempo comprendido entre ellas en años, meses, dias PERO TENIENDO EN CUENTA LOS AÑOS BISIESTOS QUE INCLUYE EL PROCESO.
Asi manejo el tema para años, pero al tratar de manejar meses y días surge el problemita con los bisiestos.
se me ocurre recorrer los años dsesde el inicial al final y evaluar dividiendo por 4 y si es exacto sera bisiesto.
"*************************"
FECNAC = DATE(2000,12,25)
HOY = DATE()
v_a= años(fecnac,hoy)
v_m= meses(v_a,fecnac,hoy)
SET CENTURY OFF
*************************************************
FUNCTION AÑOS(FI,FF)
Local ln_años
if YEAR(FI)<=YEAR(FF)
ln_años = YEAR(FF) - YEAR(FI)
If GoMonth(FI, 12 * ln_años) > FF
ln_años = ln_años - 1
EndIf
else
messagebox ("año final no puede ser menor que inicial")
endif
RETURN ln_años
ENDFUNC
Asi manejo el tema para años, pero al tratar de manejar meses y días surge el problemita con los bisiestos.
se me ocurre recorrer los años dsesde el inicial al final y evaluar dividiendo por 4 y si es exacto sera bisiesto.
"*************************"
FECNAC = DATE(2000,12,25)
HOY = DATE()
v_a= años(fecnac,hoy)
v_m= meses(v_a,fecnac,hoy)
SET CENTURY OFF
*************************************************
FUNCTION AÑOS(FI,FF)
Local ln_años
if YEAR(FI)<=YEAR(FF)
ln_años = YEAR(FF) - YEAR(FI)
If GoMonth(FI, 12 * ln_años) > FF
ln_años = ln_años - 1
EndIf
else
messagebox ("año final no puede ser menor que inicial")
endif
RETURN ln_años
ENDFUNC
Valora esta pregunta


0