[求助]怎么计算两个时间的差值?(20分)

  • 主题发起人 主题发起人 hhnick
  • 开始时间 开始时间
H

hhnick

Unregistered / Unconfirmed
GUEST, unregistred user!
[求助]怎么计算两个时间的差值?
var
BeginTime : TDateTime;开始时间
EndTime : TDateTime;结束时间
我想知道,EndTime减去BeginTime得到的结果是什么类型的?
我现在想计算开始时间和结束时间之间的时间长度,结果保存成Integer类型,怎么办?
 
TDateTime其实就是double,直接相减就行,结果保存成整形可以用round或trunc转换一下
 
两数相减得到两个日期中相的得天数,是Integer型的。就是直接用‘-’号就可以了。
 
我的意思不是指日期,而是时间,如开始11:20,结束17:30,减完后算出有多少分钟?谢谢各位帮忙。
 
(d1-d2)*24*60
 
一樣吧,你用全文查一下﹐一大堆呀
 
引用TDATETIME单元就可以直接用BETWEEN就可以得到毫秒,秒,分,时,天等差值了!
 
各位,不对。我在数据库中有这样一个函数,DateDiff可以用,但是在delphi中有办法吗?
 
DateTime数据类型相减后得到的是一个浮点数,含义是两个时间的差,单位是天

 
这样就可以了
SubTime:String;
BegTime,EndTime:String;
BegTime:='11:20:00'
EndTime:='17:30:00'
SubTime:=FormatDateTime('hh:nn:ss',(StrToDateTime(EndTime)-StrToDateTime(BegTime)));
得到的SubTime='06:10:00'.
OK了
 
不是,我用datediff函数,得到两个时间的差值,是个整型。所以,我将datediff函数作为sql语句的一部分传递给数据库,让数据库自己去计算。
datediff函数,大家可以试试,很不错。
 
相减的结果
function DiffTimeToSec(const DS, DE: TDateTime):integer;
const
SCALE=24*60*60;
begin
Result :=Round((DE-DS)*SCALE);
end;

试一试以下代码:

procedure TForm1.Button1Click(Sender: TObject);
var
dtr,dts,dte : TDateTime;
min : double;
begin
dts :=strtodatetime('2000-11-9 12:30');
dte :=strtodatetime('2000-11-9 11:30');
dtr :=dte-dts;
min :=dtr*24*60*60;
showmessage(floattostr(min))
end;
 
我有办法了,用decodetime取得就行。
 
接受答案了.
 
后退
顶部