时间转换问题(30分)

牛龙

Unregistered / Unconfirmed
GUEST, unregistred user!
已知: a:Tdatetime;
b:Tdatetime;
我想计算出a到b之间的时间间隔,以秒为单位,如何计算,有没有合适的函数可以计算
谢谢
 
S

SeaSky

Unregistered / Unconfirmed
GUEST, unregistred user!
简单!


如果B>A

B-A 得到的是天数, 将天数转换成秒数.

Sec:= (B-A)*24*3600;
 
W

wuyi

Unregistered / Unconfirmed
GUEST, unregistred user!
function difftime(time1, time2: tDateTime): Word;
var
Year1, Month1, Day1, Hour1, Min1, Sec1, MSec1: Word;
Year2, Month2, Day2, Hour2, Min2, Sec2, MSec2: Word;
begin
DecodeDate(time1, Year1, Month1, Day1);
DecodeTime(time1, Hour1, Min1, Sec1, MSec1);
DecodeDate(time2, Year2, Month2, Day2);
DecodeTime(time2, Hour2, Min2, Sec2, MSec2);
result := (day2 - day1) * 24 * 60 * 60 + (hour2 - hour1) * 3600 + (min2 - min1)
* 60 + (sec2 - sec1)
+ (month2 - month1) * 30 * 24 * 3600;
end;
 
S

SeaSky

Unregistered / Unconfirmed
GUEST, unregistred user!
补充一下, B-A得到的天数是带小数的.
0.1天代表24*360秒
1秒=1/24/3600天
 
W

wuyi

Unregistered / Unconfirmed
GUEST, unregistred user!
哈哈, 我的程序也是有问题的. 因为每个月不一定就是30天, 一年也不一定365天.
 
C

CJ

Unregistered / Unconfirmed
GUEST, unregistred user!
wuyi: 当然有问题
最好是做减法
很简单的事情
有人写了我就不写了。
补充:TDATETIME 是 浮点数
 
D

DNChen

Unregistered / Unconfirmed
GUEST, unregistred user!
我的方法,相减后的得数,转换成Tsystemdate,注意,以tdatetime的起点时间(好
象是1970年1月1日0:0:0吧)最为基数可以求出相差的时间为x年x月....


to CJ: 我下载了Slim Girl,CJ风格好明显:
1、“好色”,取名以Girl为名(TQZ一定记得CJ最初是为什么开始用Delphi的,呵
呵)
2、错别字多。

呵呵,开个玩笑!
 

牛龙

Unregistered / Unconfirmed
GUEST, unregistred user!
多人接受答案了。
 

Similar threads

回复
0
查看
662
不得闲
回复
0
查看
647
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部