Целые даты не TDateTime = Double

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Целые даты не TDateTime = Double

Сообщение hinst » 30.10.2013 20:27:50

Есть ли нормальная библиотека для работы с датами и временем в Free Pascal, которая использует не Double для представления времени, а целые типы? Я видел в стандартной библиотеке есть какой-то тип TTimeStamp - запись с двумя полями, количество дней и количество миллисекунд, прошедших с начала дня. В общем, не знаю. Важных функций для работы с TTimeStamp я не увидел. Функции преобразования в строку нет, например, функций вычисления разницы между двумя датами в TTimeStamp нет.
В общем, я думаю, что библиотека должна быть, только я что-то не нашёл. Подскажите плз если кто знает
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Целые даты не TDateTime = Double

Сообщение alexs » 30.10.2013 20:58:17

А в чём проблема?
TDateTime - целая часть - это и есть дата.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Целые даты не TDateTime = Double

Сообщение SSerge » 30.10.2013 21:15:55

Что касается TimeStamp - - DateTimeToTimeStamp <-> TimeStampToDateTime

В использовании целого типа вообще то нет никаких преимуществ: в первую очередь, он существенно ограничен по диапазону представляемого промежутка времени. Если что, есть еще юниксовый timestamp - число секунд с 1970-го года и функции UnixToDateTime <-> DateTimeToUnix
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Целые даты не TDateTime = Double

Сообщение hinst » 30.10.2013 21:36:54

у TTimeStamp два поля по Integer: на день и на миллисекунды
2^31 дней / 365 = 5 800 000 лет
Это значит, что он представляет время от -5 800 000 года до +5 800 000 года с точностью до миллисекунды
Без плавающей арифметики. Я думаю, что это лучше чем хранить дату в Double

Добавлено спустя 1 минуту 4 секунды:
И ещё мне не нравится, что у TDateTime ноль - это 1899 год.
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru