如果我需要获得12/30/2013
之类的日期并在晚上8点添加10天,如果我的第一个日期有一个TDateTime
变量,我怎样才能在Delphi中这样做?
答案 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);