两组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