X xingxing3 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-05 #1 已知两个TDateTime类型的变量,如何获知他俩相差多少天, 多少小时,多少分,多少秒,多少。。? 有没有相关的函数?
K Kang Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-05 #5 好象没有相关函数,但可以自己定义 type TDateDiff=record days,hours,minutes,seconds,mseconds:integer; end; function GetDateDiff(const Date1,Date2:TDateTime):TDateDiff; var Diff:TDateTime; temp:TDateDiff; begin Diff:=abs(Date1-Date2); temp.days:=trunnc(Diff); Diff:=(Diff-temp.days)*24; temp.hours:=trunnc(Diff); Diff:=(Diff-temp.hours)*60; temp.minutes:=trunnc(Diff); Diff:=(Diff-temp.minutes)*60; temp.seconds:=trunnc(Diff); Diff:=(Diff-temp.seconds)*1000; temp.mseconds:=trunnc(Diff); Result:=temp; end;
好象没有相关函数,但可以自己定义 type TDateDiff=record days,hours,minutes,seconds,mseconds:integer; end; function GetDateDiff(const Date1,Date2:TDateTime):TDateDiff; var Diff:TDateTime; temp:TDateDiff; begin Diff:=abs(Date1-Date2); temp.days:=trunnc(Diff); Diff:=(Diff-temp.days)*24; temp.hours:=trunnc(Diff); Diff:=(Diff-temp.hours)*60; temp.minutes:=trunnc(Diff); Diff:=(Diff-temp.minutes)*60; temp.seconds:=trunnc(Diff); Diff:=(Diff-temp.seconds)*1000; temp.mseconds:=trunnc(Diff); Result:=temp; end;
K kang_en Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-05 #6 可用decodedate和decodetime来实现: var datetime1,datetime2:Tdatetime; year1,month1,day1,hour1,min1,sec1,msec1:word; year2,month2,day2,hour2,min2,sec2,msec2:word; begin decodedate(datetime1,year1,month1,day1); decodedate(datetime2,year2,month2,day2); decodetime(datetime1,hour1,min1,sec1,msec1); decodetime(datetime2,hour2,min2,sec2,msec2); {下面可自己利用加减乘除计算了,呵呵!} end;
可用decodedate和decodetime来实现: var datetime1,datetime2:Tdatetime; year1,month1,day1,hour1,min1,sec1,msec1:word; year2,month2,day2,hour2,min2,sec2,msec2:word; begin decodedate(datetime1,year1,month1,day1); decodedate(datetime2,year2,month2,day2); decodetime(datetime1,hour1,min1,sec1,msec1); decodetime(datetime2,hour2,min2,sec2,msec2); {下面可自己利用加减乘除计算了,呵呵!} end;
陈 陈君凯 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-05 #8 datetime类型实际上是一个双精度的实型变量,欲求两者之差,直接相减就行了
V Victortim Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-05 #10 type TDateTime = typedo uble; Following are some examples of TDateTime values and their corresponding dates and times: 0 12/30/1899 12:00 am 2.75 1/1/1900 6:00 pm -1.25 12/29/1899 6:00 am 35065 1/1/1996 12:00 am
type TDateTime = typedo uble; Following are some examples of TDateTime values and their corresponding dates and times: 0 12/30/1899 12:00 am 2.75 1/1/1900 6:00 pm -1.25 12/29/1899 6:00 am 35065 1/1/1996 12:00 am
W WuWZY Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-05 #13 trunc(date1-date2); or trunc(date1)-trunc(date2); 通常用此表示天数差! 两种不同的理解方式!看你怎么理解。 其实date1-date2是精确的时间差,用decodedate和decodetime 直接解开就可以了。(但这仅仅表示时间差,切不可以为是绝对的时间,以前有过类似的问题)
trunc(date1-date2); or trunc(date1)-trunc(date2); 通常用此表示天数差! 两种不同的理解方式!看你怎么理解。 其实date1-date2是精确的时间差,用decodedate和decodetime 直接解开就可以了。(但这仅仅表示时间差,切不可以为是绝对的时间,以前有过类似的问题)
W wumeng Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-05 #14 直接相减 rDate:real; rDate:=date1-date2; rDate:整数部分表示天数;小数部分表示时数; 如rDate:=0.3125表示7.5小时; rDate:=1表示24小时;
C Chenlili Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-05 #15 powerbuider有直接相减的函数,Delphi的好象没有。
X xingxing3 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-06 #16 谢谢各位! 》Kang的方法:正确。谢谢kang! (trunnc应为trunc) 》Kang_en 的方法:如果要求相差的天数,而两个decodedate之差 大于365,那天数如何计算?(闰年,还有月分30,31天)?是不是很麻烦? 可以给分了吗?
谢谢各位! 》Kang的方法:正确。谢谢kang! (trunnc应为trunc) 》Kang_en 的方法:如果要求相差的天数,而两个decodedate之差 大于365,那天数如何计算?(闰年,还有月分30,31天)?是不是很麻烦? 可以给分了吗?
X xingxing3 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-07 #18 >>WuWZY 我的意思是用decodedate解出是含有年月的信息,要将年月转换成day还要 考虑闰年和大小月,比较麻烦。求时间差还是不要用decode*来得好。。。 。。不知是不是我理解上还有问题,请多指教!
>>WuWZY 我的意思是用decodedate解出是含有年月的信息,要将年月转换成day还要 考虑闰年和大小月,比较麻烦。求时间差还是不要用decode*来得好。。。 。。不知是不是我理解上还有问题,请多指教!
V Victortim Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-07 #20 两个日期相减后,相差1为一天(24小时),0.5为12小时。5.25则为5天6小时. >>如果要求相差的天数,而两个decodedate之差 大于365,那天数如何计算? >>(闰年,还有月分30,31天)?是不是很麻烦 相差的天数是没有什么闰年不闰年吧?它并不代表什么年份,如1900,1800等。375天没有理由是公元2年(没有公元0年)的第10天吧?
两个日期相减后,相差1为一天(24小时),0.5为12小时。5.25则为5天6小时. >>如果要求相差的天数,而两个decodedate之差 大于365,那天数如何计算? >>(闰年,还有月分30,31天)?是不是很麻烦 相差的天数是没有什么闰年不闰年吧?它并不代表什么年份,如1900,1800等。375天没有理由是公元2年(没有公元0年)的第10天吧?