如何将日期和时间添加到日期时间变量?

时间:2013-12-05 01:21:03

标签: delphi

如果我需要获得12/30/2013之类的日期并在晚上8点添加10天,如果我的第一个日期有一个TDateTime变量,我怎样才能在Delphi中这样做?

2 个答案:

答案 0 :(得分:8)

您可以使用+运算符添加整数天,并使用SysUtils.ReplaceTime()更改时间,例如:

uses
  ..., SysUtils;

var
  DT: TDateTime;
begin
  DT := EncodeDate(2013, 12, 30); // Dec 30 2013 @ 12AM
  DT := DT + 10; // Jan 9 2014 @ 12AM
  ReplaceTime(DT, EncodeTime(20, 0, 0, 0)); // Jan 9 2014 @ 8PM
end;

答案 1 :(得分:6)

DateUtils单元有一大堆帮助程序,可以让您自己与TDateTime的编码方式隔离开来。例如:

uses
  SysUtils, DateUtils;
....
var
  DT: TDateTime;
....
DT := EncodeDate(2013, 12, 30); // Dec 30 2013 @ 12AM
DT := IncDay(DT, 10);
DT := IncHour(DT, 20);

这可能有点啰嗦,但我选择这种方法来说明IncDay和IncHour。我建议研究DateUtils的内容,以熟悉它的所有功能。

另一种方法是这样:

DT := EncodeDateTime(2013, 12, 30, 20, 0, 0, 0); // Dec 30 2013 @ 8PM
DT := IncDay(DT, 10);

甚至:

DT := IncDay(EncodeDateTime(2013, 12, 30, 20, 0, 0, 0), 10);