 |
Delphi中表示时间通常使用TDateTime类型,这个类型实际上是Double类型。整数部分表示自12/30/1899以来的天数,而小数部分是将不足一天的部分除以24小时,如上午6点是0.25。要进行时间运算只需要直接进行加减就可以了。
jq_com问:
分、秒或除不尽怎么办?
答:
确切的计算公式是:
Time := (Hour * 3600000 + Min * 60000 + Sec * 1000 + MSec) / MSecsPerDay;
其中MSecsPerDay是每天所拥有的秒数。除不尽也没有什么关系,Double类型的精度完全可以保证你在转换DateTime类型转换为String类型时不会出错。
phil的意见:
你可以直接减,sample
uses DateUtils;
var
A,B,C:Datetime;
begin
A:=now;
B:= DateTimeToStr('2000-01-01 12:23:11');
C:=A-B; //C就是相差的时间,以天为单位
//或是采用DELPHI自带函数
ShowMessage(IntToStr(YearsBetween(A,B)) + '年');
ShowMessage(IntToStr(MonthsBetween(A,B)) + '月');
..... //以此类推
ShowMessage(IntToStr(MilliSecondsBetween(A,B)) + '毫秒');
end;
程序在delphi6上通过。
simon的意见:
用DateUtils中的minutesBetween函数
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, Delphi, VCL, Borland, 其他方面, 。
|