Delphi 日期时间之间的差异(小时、分钟、秒)
我试图获得两个日期时间之间的差异,并将其显示为字符串hh:mmDelphi 日期时间之间的差异(小时、分钟、秒),delphi,delphi-2010,Delphi,Delphi 2010,我试图获得两个日期时间之间的差异,并将其显示为字符串hh:mm q.parambyname('vstart').asdatetime:= vstart; q.parambyname('vend').asdatetime:= vend; d:= vend-vstart; mins:= d * 1440; q.ParamByName('mins').asBCD:= mins; 当前,数据库以分钟为单位存储它 示例(0.39) 然后,我想从数据库中获取它,并在DateUtils中以字符串格式hh:
q.parambyname('vstart').asdatetime:= vstart;
q.parambyname('vend').asdatetime:= vend;
d:= vend-vstart;
mins:= d * 1440;
q.ParamByName('mins').asBCD:= mins;
当前,数据库以分钟为单位存储它
示例(0.39)
然后,我想从数据库中获取它,并在
DateUtils
中以字符串格式hh:mm显示它。有一个函数MinutesBetween
,可以这样使用:
m := MinutesBetween(vend,vstart);
yourHMStr := Format('%2.2d:%2.2d',[m div 60,m mod 60]);
我可以使用
DateUtils
提出这个简单的代码:
DiffTimeStr:= FormatDateTime('hh:nn:ss', TimeEnd - TimeStart);
您真的需要数据库中的
mins
字段吗vstart
和vend
字段已经包含了所有需要返回它们之间差异作为查询结果的信息(以您需要的格式)。这个答案给出了hh:mm,但标题中提到的秒数呢?@Dreamer64,请使用<代码>s:=中间的秒数(供应商、vstart);HMSstr:=格式(“%2.2d:%2.2d:%2.2d”,[s div 3600,(s div 60)mod 60,s mod 60]),其中s是Int64
变量。