计算两个日期的间隔,可精确到秒

function LeaveDateTimeStr(const fromDate, ToDate: TDateTime): string;
var
  Days, H, M, S: Int64;
begin
  Result := '';
  if fromDate = ToDate then
  begin
    Result := '已到期';
  end
  else
  begin
    Days := ABS(DaysBetween(fromDate, ToDate));
    H := ABS(HoursBetween(fromDate, ToDate));
    M := ABS(MinutesBetween(fromDate, ToDate));
    S := ABS(SecondsBetween(fromDate, ToDate));

    if H >= HoursPerDay then
    begin
      H := H mod HoursPerDay;
    end;

    if M >= MinsPerHour then
    begin
      M := M mod MinsPerHour;
    end;

    if S >= SecsPerMin then
    begin
      S := S mod SecsPerMin;
    end;

    if Days <> 0 then Result := Format('%d天', [Days]);
    if H <> 0 then Result := Format('%s%d小时', [Result, H]);
    if M <> 0 then Result := Format('%s%d分', [Result, M]);
    if S <> 0 then Result := Format('%s%d秒', [Result, S]);

    if ToDate < fromDate then
      Result := Format('已过期%s', [Result]);
  end;
end; 

这个函数可以计算出fromDate和ToDate之间间隔,可以精确到小时、分和秒。

使用这个函数需要引用单元DateUtils。

 

使用这个函数:

FDate := StrtoDateTime('2008-08-08 20:00:00');

Str := LeaveDateTimeStr(Now(), FDate);

Label1.Caption := str;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值