824_____________________________________________Глава 14

Например:

значение TDateTime	дата, время
0	12/30/1899, 00 часов
2.75	1/1/1900, 18 часов
-1.25	12/29/1899, 6 часов утра
35065	1/1/1996, 00 часов

Некоторые функции используют также тип TTimeStamp. Это структура вида:

struct TTimeStamp
{

int Time;

int Date;

)  ;

Поле Date содержит число дней с начала календаря (т.е. 1 января 1 года ото-
бражается как 1). Обратите внимание, что значения дат в типах TDateTime и TTi-
meStamp разные. Поле Time содержит время в миллисекундах, прошедшее с 0 ча-
сов текущего дня.

TDateTime обеспечивает более компактное представление дат и времени. Так
что если вам не нужна точность до миллисекунд, лучше пользоватьсмя типом TDa-
teTime.

Преобразование структуры типа TTimeStamp в TDateTime осуществляется
функцией TimeStampToDateTime, обратное преобразование — функцией DateTi-
meToTimeStamp. Функция TimeStampToMSecs возвращает в виде 64-разрядного
числа с плавающей запятой общее число миллисекунд, составленное из полей Date
и Time.

Имеется еще один формат представления дат и времени, принятый в DOS.
Этот формат используется в таких функциях, как FileAge, FileGetDate, FileSet-
Date, в поле Time структуры типа TSearchRec, применяемой в функциях Find-
First и FindNext. Перевод в этот формат значения типа TDateTime осуществляет-
ся функцией DateTimeToFileDate.

Наконец, имеется еще системный формат — TSystemTime, определенный как
тип _SYSTEMTIME. Он может требоваться при вызове функций API Windows.
Преобразование TDateTime в этот формат осуществляется функцией DateTimeTo-
SystemTime, а обратное преобразование осуществляется функцией SystemTime-
ToDateTime.

В функциях DateTimeTo String и FormatDateTime используется строка фор-
матирования дат, которая может содержать следующие спецификаторы:

с        Печать даты по формату, заданному глобальной переменной Short-

DateFormat, а затем печать времени в формате, заданном глобальной
переменной LongTimeFormat. Если дробная часть DateTime равна О,
время не печатается

d        Печать дня без начального нуля (1 — 31)
dd       Печать дня с начальным нулем (01 — 31)

ddd     Печать дня в виде абревиатуры (пн-вс) с использованием глобальной
переменной ShortDayNames

dddd    Печать дня в виде его полного названия (понедельник — воскресе-
нье) с использованием глобальной переменной LongDayNames