4

我有两个日期:1. 2013 年 2 月 1 日 2. 现在。因此,两个日期之间有 2 天的差异。如何以编程方式在 delphi 中获得这种不同的天数?

4

2 回答 2

10

使用以下DaysBetween功能DateUtils

var
  d1, d2: TDate;
begin

  d1 := EncodeDate(2013, 02, 01);
  d2 := EncodeDate(2013, 02, 04);

  ShowMessage(IntToStr(DaysBetween(d2, d1)));
于 2013-02-04T11:04:58.513 回答
2

TDateTime是一种浮点格式,其中整数部分表示天数,而 zecimal 部分表示时间(作为 24 小时的一部分)。

所以如果你想得到一个从今天起两天后的日期,你只需添加2到原始日期。如果您有两个日期并且想要以天为单位计算距离,请DaysBetween按照 Andreas 的建议使用。

例子:

var D:TDateTime;
begin
  D := EncodeDate(2013, 2, 1);
  D := D + 2; // Adds two days.
end;

你也可以使用IncDay函数 fromDateUtils来做同样的事情;有人会说它更具可读性:

D := IncDay(D, 2);
于 2013-02-04T11:07:14.680 回答