计算两个日期之间相差的年数月数和天数

字体大小: 中小 标准 ->行高大小: 标准
两组edit 一组三个 分别输入年月日 button1click计算这两个年份之间差几年 几月 几天 怎个算发该怎么写??


var TD,D1,D2:TDate; 
Year,Mon,Day:Int; 
begin 

Year:=0; 
Mon:=0; 
Day:=0; 

Try 
D1:=StrToDate(Edit1.Text+'-'+Edit2.Text+'-'+Edit3.Text); 
Except 
MessageDlg('无效的第一个日期记录,请重新输入!', mtInformation,[mbOk], 0); 
Edit1.SetFocus; 
Exit; 
end; 

Try 
D2:=StrToDate(Edit4.Text+'-'+Edit5.Text+'-'+Edit6.Text); 
Except 
MessageDlg('无效的第二个日期记录,请重新输入!', mtInformation,[mbOk], 0); 
Edit4.SetFocus; 
Exit; 
end; 

TD:=D2-D1; //减出来是一个实数,整数部分就是天数,小数部分是时分秒毫秒。 

if TD>365 then 
begin 
Year:=TD Div 365; //取整数的 
TD:=TD-Year*365; 
end; 

if TD>30 then //错误了 30 Or 31 没有这种说法的,哪里有差几个月的说法?只有大约差10个月左右,大家在说话的时候有这样的表示方式,但是精确计算的时候是没有这样表示的。 
begin 
end; 


end; 



这样就可以用了,但是我有一个问题,两个日期之间可以用差几年 几月 几天这样的说法表示的吗?我只是知道差几天的,差多少小时的,从来没有听说过差多少年月日的,难道可以这样表示的吗:1997.11.23和2002.09.14差4年10个月零21天的吗,这个说法好像是错误的。 

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/67975.html