Код: Выделить всё
uses DateUtils;
var datetime_1, datetime_2 : TDateTime;
datetime_1 := EncodeDateTime(2007, 12, 12, 14, 56, 06, 0);
datetime_2 := EncodeDateTime(2007, 12, 12, 14, 56, 10, 0);
// Здесь результат будет: 4
ShowMessage (IntToStr (SecondsBetween (datetime_1, datetime_2)));
datetime_1 := EncodeDateTime(2007, 12, 12, 14, 53, 06, 0);
datetime_2 := EncodeDateTime(2007, 12, 12, 14, 53, 10, 0);
// А здесь результат будет: 3
ShowMessage (IntToStr (SecondsBetween (datetime_1, datetime_2)));
Если же в предыдущем примере вычислить разность в миллисекундах,
то получим результаты 4000 и 3999.
Отсюда и можно следать предположение, что [в какой-то момент - ?] при вычислении секунд "лишние" цифры отбрасываются, а не округляются!
Т.е. более точная разность в секундах между двумя моментами времени получится при использовании:
round (SecondsMilliBetween (datetime_1, datetime_2) / 1000);