• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

delphi计算两个时间差

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
uses DateUtils;

var
S1, S2: string;
T1, T2: TDateTime;
D, H, M, S: Integer;
Value: Int64;
begin
S1 := '2015/09/23 15:44:50';
S2 := '2013/09/22 16:47:51';
T1 := StrToDateTime(S1);
T2 := StrToDateTime(S2);

Value := SecondsBetween(T1, T2);
D := Value div SecsPerDay;                                  // 取一天有多少秒  
H := Value mod SecsPerDay div SecsPerHour;                  // 取一天有多少秒
M := Value mod SecsPerDay mod SecsPerHour div SecsPerMin; 
S := Value mod SecsPerDay mod SecsPerHour mod SecsPerMin; 
Caption := Format('%.2d天 %.2d:%.2d:%.2d', [D, H, M, S]); //%.2d没有两位补全,若没有'.'则显示实际位数 
memo1.Lines.Add(caption);
end;

  

经过上面可以实现两个时间相减的功能,然后将其写成函数为:

function GetSubDateTime(S1, S2:string): string;
var
  T1, T2: TDateTime;
  D, H, M, S: Integer;
  Value: Int64;
begin
  T1 := StrToDateTime(S1);
  T2 := StrToDateTime(S2);
  Value := SecondsBetween(T1, T2);
  D := Value div SecsPerDay;
  H := Value mod SecsPerDay div SecsPerHour;
  M := Value mod SecsPerDay mod SecsPerHour div SecsPerMin;
  S := Value mod SecsPerDay mod SecsPerHour mod SecsPerMin;
  result := Format('%.2d天 %.2d:%.2d:%.2d',[D, H, M, S]);
end;

调用:
var
Caption: string;
begin
Caption := GetSubDateTime(S1, S2);
memo1.liens.add(Caption);
end;

上面就可以直接调用函数计算差值,若要想计算动态的时间差值就使用一个计时器Timer,代码如下:

procedure TForm2.Timer1Timer(Sender: TObject);
var
  S1, S2: string;
begin
  S1 := FormatDateTime('yyyy/mm/dd hh:mm:ss', now());   // 我用的XE,所以提前出来的系统时间是这种格式
  S2 := '2015/9/22 01:02:03';                           // 这里时间要和获取到的系统时间一致
  GetSubDateTime(S1, S2);
  Memo1.Lines.Add(GetSubDateTime(S1, S2));
end;

  

  

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi7开发的Ocx控件提示DAXError的解决办法发布时间:2022-07-18
下一篇:
让delphi程序不受WINDOWS操作系统日期格式的影响发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap