Determinar edad en Fox
Determinar edad de acuerdo a la fecha actual y la fecha de nacimiento
Holas.
Prueba esto. Version poo
dBirth = DATE(1969,1,18)
oAge = Createobject("age")
*oAge.CalcAge(dBirth, dTarget)
oAge.CalcAge(dBirth)
? oAge.Years, oAge.Months, oAge.Days
? Gomonth(dBirth, oAge.Years * 12 + oAge.Months) + oAge.Days
DEFINE CLASS age As Relation
Years = 0
Months = 0
Days = 0
PROCEDURE CalcAge
LPARAMETERS tdBirth, tdTarget
LOCAL ldTemp, ldBirth, lnDrop
tdTarget = IIF(EMPTY(tdTarget), DATE(), tdTarget)
IF tdBirth > tdTarget
ldTemp = tdTarget
tdTarget = tdBirth
tdBirth = ldTemp
ENDIF
ldBirth = DATE(YEAR(tdTarget), MONTH(tdBirth), DAY(tdBirth))
lnDrop = 0
IF EMPTY(ldBirth) && leap case
ldBirth = DATE(YEAR(tdTarget), 3, 1)
lnDrop = IIF(MONTH(tdTarget) < = 2, 0, 1)
ENDIF
WITH This
.Years = YEAR(tdTarget) - YEAR(tdBirth) - (IIF(ldBirth > tdTarget, 1, 0))
.Months = (MONTH(tdTarget) - MONTH(tdBirth) + 12 - ;
(IIF(DAY(tdBirth) > DAY(tdTarget), 1, 0))) % 12
.Days = tdTarget - GOMONTH(tdBirth, .Years * 12 + .Months) - lnDrop
ENDWITH
ENDPROC
ENDDEFINE
Articulo tomado de www.portalfox.com
Prueba esto. Version poo
dBirth = DATE(1969,1,18)
oAge = Createobject("age")
*oAge.CalcAge(dBirth, dTarget)
oAge.CalcAge(dBirth)
? oAge.Years, oAge.Months, oAge.Days
? Gomonth(dBirth, oAge.Years * 12 + oAge.Months) + oAge.Days
DEFINE CLASS age As Relation
Years = 0
Months = 0
Days = 0
PROCEDURE CalcAge
LPARAMETERS tdBirth, tdTarget
LOCAL ldTemp, ldBirth, lnDrop
tdTarget = IIF(EMPTY(tdTarget), DATE(), tdTarget)
IF tdBirth > tdTarget
ldTemp = tdTarget
tdTarget = tdBirth
tdBirth = ldTemp
ENDIF
ldBirth = DATE(YEAR(tdTarget), MONTH(tdBirth), DAY(tdBirth))
lnDrop = 0
IF EMPTY(ldBirth) && leap case
ldBirth = DATE(YEAR(tdTarget), 3, 1)
lnDrop = IIF(MONTH(tdTarget) < = 2, 0, 1)
ENDIF
WITH This
.Years = YEAR(tdTarget) - YEAR(tdBirth) - (IIF(ldBirth > tdTarget, 1, 0))
.Months = (MONTH(tdTarget) - MONTH(tdBirth) + 12 - ;
(IIF(DAY(tdBirth) > DAY(tdTarget), 1, 0))) % 12
.Days = tdTarget - GOMONTH(tdBirth, .Years * 12 + .Months) - lnDrop
ENDWITH
ENDPROC
ENDDEFINE
Articulo tomado de www.portalfox.com
