shyub писал(а):Почему такое происходит и как не потерять минуту при расчёте временного интервала между двумя событиями?
Не использовать TDateTime.
Эта структура абсолютно непригодна для "немемориальных" временных отметок, т.е. отметок событий, привязанных к реальным зафиксированным моментам времени с необходимостью дальнейшего вычисления интервалов между ними. То же касается функций "between". Вы сильно удивитесь результатам, пытаясь ими считать временные промежутки между моментами времени, разделенными, например переходом на летнее время или изменением характеристик часовых поясов.
Если что, есть такой Unix timestamp - число секунд с 1.01.1970 по UTC, для которого не существует извращений со сменой часовых поясов и летним временем, т.е. все промежутки между такими метками получаются абсолютно корректными и получаются элементарным сложением/вычитанием. Кроме того, само представление TDateTime как double, это что? Правильно, заведомое искажение информации из-за особенностей аппаратного представления экспоненциальных чисел.
Добавлено спустя 3 минуты 50 секунд:- Код: Выделить всё
StrToDateTime('11.11.2015 21:13:00');
Вы, кстати, не проконтролировали результат операции парсинга.
Там может оказаться вовсе не то, что подразумевалось.