注册 登录
编程论坛 Delphi论坛

关于时间的计算

aaron52088 发布于 2007-04-27 14:04, 1048 次点击

主要是用于设计计费功能的,
比如说,有两个DateTimePicker1和DateTimePicker2,
想计算出他们之间的DATE的差值,然后乘以一个价格,
想问问怎么减可以得出一个数呢?

上网看见别人说可以这样写:“
StrToDateTime('2005-8-17 22:03:05')-StrToDateTime('2005-8-15 22:23:35')
得到1.98576388889342,这个数字代表什么呢?
1.98576388889342*24=47.65833333344208,取整得到47,说明相差47小时
0.65833333344208*60=39.5000000065248,说明相差39分
0.5*60=30,说明相差30秒 ”

可是我这样得出的结果是1900-01-01。
请问怎么可以实现我要实现的功能呢,谢谢先

11 回复
#2
phonbob2007-04-27 15:54
直接用时间减。
#3
aaron520882007-04-28 10:43

我是要用DateTimePicker1.Date-DateTimePicker2.Date,
就直接labelVALUE_CQ.Caption:=(datetostr(DateTimePicker2.Date)-datetostr(DateTimePicker1.Date) );

这样吗?编译不能通过呀

#4
aaron520882007-04-28 10:47
labelVALUE_CQ.Caption:=datetostr(DateTimePicker2.Date-DateTimePicker1.Date);
是这样吧?
但是我用(2007-05-23 )- (2007-04-23) 等于的是1900-01-29
这个是什么意思呢?
#5
phonbob2007-04-28 13:06
这表示大一个月带29天。你系统默认的起始日期是1900-01-01
所以1900在这里就是0
#6
zp10202007-04-28 17:18

用daysbetween(DateTimePicker2.Date,DateTimePicker1.Date)就行了
uses dateutils 就行了

#7
zp10202007-04-28 17:19

phonbob 就是那个来自 家 的
你不知道就别瞎回 回答的问题一个都不对

#8
phonbob2007-04-29 09:34
datetime本就是float的。
#9
aaron520882007-04-30 17:27
谢谢大家的先,
我试试看的。
#10
aaron520882007-05-01 21:22
试过了,zp1020的方法比较好,而phonbob的说法,觉得也是对的。
谢谢上面两位了:)
#11
aaron520882007-05-01 21:24
想再问问zp1020,如果需要datetime的相减,可以
调用什么函数呢?
谢谢先
#12
hycyh98522007-05-03 18:54

不懂~~

1