标题: 作者:孙空空 时间:2009-09-25 09:41 |
时间处理的秘密 TDateTime类型实际上就是一个double(双精度数). 整数部分是日期小数部分是时间。例如
var DateTime : TDateTime; Date : TDateTime; Time : TDateTime; begin DateTime := now; //获得日期 Date := Trunc( DateTime ); //获得时间 Time := Frac( DateTime ); end;
日期运算 如果你想增加几天,只需要加一个天数就可以了
var DateTime : TDateTime; begin DateTime := now; //七天以后 DateTime := DateTime + 7; end;
想要知道两个日期的差距,只需要互相减一下就可以了。
var StartTime, StopTime, Difference : TDateTime; begin Difference := StopTime - StartTime; end; |
|
标题: 作者:孙空空 时间:2009-09-25 09:41 |
日期有两种:TDate, TDateTime 无论是哪一种,在系统中都是以双精度浮点数(Double)的形式存储的。所以日期之间可以直接加减。 1. 两天之间的天数: var myDate1,myDate2:TDate; begin myDate1:=StrToDate('2002-1-1'); myDate2:=StrToDate('2002-8-8'); Edit1.text:=IntToStr(Round(myDate1-myDate2)); end; //Round()是四舍五入取整 2. 某个日期180天后的日期 var myDate1,myDate2:TDate; begin myDate1:=StrToDate('2002-11-12'); myDate2:=myDate1+180; Edit1.Text:=DateToStr(myDate2); end; 3. 如果日期是TDateTime类型的(日期+时间) 相应的日期操作为:DateTimeToStr(),StrToDateTime()等 计算两个DateTime之间的小时差,相减结果*24,然后取整 计算两个DateTime之间的分钟差,相减结果*24*60,然后取整 计算两个DateTime之间的秒差,相减结果*24*60*60,然后取整 |
|
标题: 作者:孙空空 时间:2009-09-25 09:41 |
function DaysBetween(const ANow, AThen: TDateTime): Integer; 返回整天数目,例如,1999-12-31 23:59:00到2000-1-1 23:58:00 它将返回0,因为它还不足一天。:) 相反, function DaySpan(const ANow, AThen: TDateTime): Double; 将返回不完整的天数,例如,刚好一天就返回1,如果不足一天 则可能返回0.9天或0.8天或0.5天等等。:) |
|
标题:Delphi日期计算问题 作者:crazy_wen 时间:2009-09-24 13:54 |
hourtime:=DateUtils.HourOf(now - 17/60/24);请问后面的数字式什么意思,谢谢 |
|
标题: 作者:kjw_ok 时间:2009-12-29 12:30 |
观望中。。。。 |
请发表评论