 |
func age
para birthday
set date ansi
if right(dtoc(date()),5)>=right(dtoc(birthday),5)
return year(date())-year(birthday)
else
return year(date())-year(birthday)-1
endif
ljh的意见:
最简单扼要的算法:
age=(date()-birthday)/365.25
Micheal的意见:
Function countage
PARAMETERS birthday
IF DATE() RETURN .f.
ENDIF
daymin=.f.
monmin=.f.
rqc=DAY(DATE())-DAY(birthday)
IF rqc<=0
daymin=.t.
ENDIF
yfc=MONTH(DATE())-MONTH(birthday)
IF yfc<0 OR (yfc=0 AND daymin)
monmin=.t.
ENDIF
IF daymin
yfc=yfc-1
ENDIF
nfc=YEAR(DATE())-YEAR(birthday)
IF monmin
RETURN IIF(nfc=0,'0',ALLTRIM(STR(nfc-1)))+'岁'+ALLTRIM(STR(12-ABS(yfc)))+'月'
ENDIF
RETURN ALLTRIM(STR(nfc))+'岁'+ALLTRIM(STR(yfc))+'月'
此问题由彭定友回答。
附加关键字:编程, 源程序, programming, source code, FoxPro/Visual FoxPro, Foxbase, dBase, xbase, FoxPro, VFP, Visual FoxPro, 其他方面, 。
|