José Luis un buen día.
Tengo lo siguiente:
[quote:2nsjfooe]
# include "fivewin.ch"
Function Main ()
Local dfecha1 := ""
Local sEdad := ""
Local sDias := ""
SET DATE TO ANSI
SET CENTURY ON
dFecha1 := DATE ()
DEFINE DIALOG oDlg FROM 000, 000 TO 300, 260 PIXEL ;
TITLE "Edad entre dos fechas"
@ 005, 010 SAY "Fecha de Nacimiento" SIZE 070, 14 PIXEL OF oDlg COLOR nRGB ( 016, 016, 240 ), nRGB ( 240, 240, 240 )
@ 005, 080 DTPICKER odfecha1 VAR dfecha1 SIZE 050, 14 PIXEL OF oDlg COLOR nRGB ( 240, 240, 240 ), nRGB ( 240, 016, 016 ) ;
MESSAGE "Digite la fecha de nacimiento"
@ 020, 010 BUTTON "Calcule" SIZE 030, 014 PIXEL OF oDlg ;
ACTION ( sEdad := DFechas ( dFecha1, "0" ), osEdad:Refresh (),;
sDias := DFechas ( dFecha1, "1" ), osDias:Refresh () )
@ 040, 010 SAY osEdad VAR sEdad SIZE 200, 14 PIXEL OF oDlg COLOR nRGB ( 016, 016, 240 ), nRGB ( 240, 240, 240 )
@ 054, 010 SAY osDias VAR sDias SIZE 200, 14 PIXEL OF oDlg COLOR nRGB ( 016, 016, 240 ), nRGB ( 240, 240, 240 )
ACTIVATE DIALOG oDlg
Return ( NIL )
* -------------------------------------------------------------------------------------------------------------- *
* -------------------------------------------------------------------------------------------------------------- *
Function DFechas ( DA, cViene ) && Calcular una Edad desde una fecha a la actualidad en años.meses.dias
Local nDias, nAnos, nMeses
Local Dias_ano := 365.28
Local Dias_Mes := 30
Default cViene := "0"&& 0 := sin días calculados, 1 := con los días calculados
nDias := DATE () - DA && Diferencia de Días entre DATE y una Fecha dada 2013.08.25 - 1957.03.04 := 20628 := 56 años, 5 meses, 3 semanas
nAnos := INT ( nDias / Dias_ano ) && Cuantos años hay entre esos dias de diferencia 56
nDias1 := nDias - ( nAnos * Dias_ano ) && Días sobrantes 132
nMeses := INT ( nDias1 / Dias_Mes ) && Cuantos meses hay en esos días sobrantes
nDias2 := nDias1 - ( nMeses * Dias_Mes ) && Días sobrantes
Return ( IIF ( cViene = "1", TRANSFORM ( nDias, "999,999" ) + " días, ", "" ) + ;
TRANSFORM ( nAnos, "9,999" ) + " años, " + ;
TRANSFORM ( nMeses, "99" ) + " meses, " + ;
TRANSFORM ( nDias2, "99" ) + " días" )
* -------------------------------------------------------------------------------------------------------------- *
*
*
*
*
[/quote:2nsjfooe]
a ver si te sirve
un saludo
↧