5
我观察到一些有关EncodeDateTime
和EncodeTime
方法的奇怪行为,我正在寻求一些解释。为什么TTime比较会产生意想不到的结果?
procedure SomeTestCase;
var
time: TTime;
dateTime: TDateTime;
begin
time := EncodeTime(8, 0, 0, 0);
date := EncodeDateTime(2012, 11, 2, 8, 0, 0, 0);
Assert(time = TimeOf(date)); //Fails
end;
我发现的是date
的小时部分评估为7:59:59
,而不是8:00:00
。但是,如果我将time
和date
的小时部分设置为9,则声明阶段和date
评估为预期值。一些小时工作,而另一些则不工作。有人能解释我发生了什么事吗?