我想从出生年月算出本人的年龄,不知各位有何高建?(100分)

  • 主题发起人 主题发起人 gy_125
  • 开始时间 开始时间
G

gy_125

Unregistered / Unconfirmed
GUEST, unregistred user!
我想从出生年月算出本人的年龄,不知各位有何高建?
 
你这个问题到底是在问什么?
 
// 用下面的函数:
function GetAge(BirDate : TDate) : Integer;
var
BirYear, BirMonth, BirDay : Word;
NowYear, NowMonth, NowDay : Word;
begin
DecodeDate(Date, NowYear, NowMonth, NowDay);
DecodeDate(BirDate, BirYear, BirMonth, BirDay);
if NowMonth > BirMonth then
Result := NowYear - BirYear
else if NowMonth = BirMonth then
if NowDay >= BirDay then
Result := NowYear - BirYear
else
Result := NowYear - BirYear - 1;
else
Result := NowYear - BirYear - 1;
end;
 
简单的算法是两个日期直接相减,得到天数(注意:real型)再换算成年龄(年/月/天),但有误差(如闰年)
也可在相减之前判断在这两个年份之间有多少闰年(被4整除,而不被100整除 )再修正误差.
不知可否?
 
接受答案了.
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部