【问题标题】:Difference between datetimes in Hours, Mins, Seconds以小时、分钟、秒为单位的日期时间之间的差异
【发布时间】:2012-10-23 13:42:11
【问题描述】:

我正在尝试获取两个日期时间之间的差异并将其以字符串形式显示为 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)

然后我想从数据库中取出它并以字符串格式 hh:mm 显示它

【问题讨论】:

  • 您的数据库中真的需要mins 字段吗? vstartvend 字段已经包含您需要返回它们之间的差异作为查询结果的所有信息(以您需要的格式)。

标签: delphi delphi-2010


【解决方案1】:

DateUtils 中有一个函数MinutesBetween 可以这样使用:

m := MinutesBetween(vend,vstart);
yourHMStr := Format('%2.2d:%2.2d',[m div 60,m mod 60]);

【讨论】:

  • 这个答案给出了 hh:mm 但是标题中提到的秒数呢?
  • @Dreamer64,使用System.DateUtils.SecondsBetweens := SecondsBetween(vend,vstart); HMSstr := Format('%2.2d:%2.2d:%2.2d',[s div 3600,(s div 60) mod 60,s mod 60]);,其中 s 是 Int64 变量。
【解决方案2】:

我可以使用DateUtils 提出这个简单的代码:

DiffTimeStr:= FormatDateTime('hh:nn:ss', TimeEnd - TimeStart);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-14
    • 2013-09-15
    • 1970-01-01
    • 2013-05-14
    • 2021-09-13
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多