Ho osservato un qualche tipo di comportamento strano riguardante i metodi EncodeDateTime
e EncodeTime
e sto cercando qualche spiegazione.Perché i confronti TTime danno risultati imprevisti?
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;
Quello che ho trovato è quella porzione date
s' ora restituisce 7:59:59
invece di 8:00:00
. Ma se imposto la porzione oraria di time
e date
a 9, l'assert passa e date
valuta il valore previsto. Alcune ore di lavoro mentre altre no. Qualcuno può spiegarmi cosa sta succedendo?