Справочник по компонентам Delphi. Часть 1
Страница 11. Функции работы с датами и временем


 

Функции работы с датами и временем

В Delphi для хранения дать! и (или) времени предусмотрен формат TDateTime, представляющий собой, на самом деле, обычное число с плавающей точкой.

При этом дата представляется целой частью числа, а время — дробной. Преимущество этого подхода в том, что теперь дать! и времена можно кор­ректно складывать и вычитать, например:

var StartTime: tDateTime;

procedure TFormI.PormCreate(Sender: TObject);

begin
StartTime := Now;
end;
procedure TFormI.FormClick(Sender: TObject);
begin
Labell.Caption := 'Co времени запуска прошло' +
DateTimeToStr(Now - StartTime);
end;

Функции этой группы приведены в таблице:

function EncodeDate(Year, Month, Day: Word): TDateTime;

Преобразует дату, заданную раздельно годом, месяцем и днем, в формат TDateTime. Если они выходят за допустимые пределы, возникает ИС EConvertError.

procedure DecodeDatefDate: TDateTime; var Year, Month, Day: Word);

Преобразует дату в виде TDateTime к раздельным составляющим: году, месяцу и дню.

function EncodeTimefHour, Min, Sec, MSec: Word):

TDateTime;

Преобразует значение времени, заданное часом, минутой, секундой и миллисекундой в формат TDateTime.

procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word) ;

Преобразует значение времени в формате TDateTime в раздельные составляющие: час, минуту, секунду и миллисекунду.

function DayOfWeektDate: TDateTime): Integer;

Возвращает номер текущего дня недели от 1 (воскресенье) до 7 (суббота).

function Date: TDateTime;

Возвращает текущую дату.

function Time: TDateTime;

Возвращает текущее время.

function Now: TDateTime;

Возвращает текущие дату и время.

function DateToStr(Date: TDateTime): string;

Преобразует дату Date в текстовую строку.

function TimeToStr(Time: TDateTime): string;

Преобразует время из типа TDateTime в текстовую строку.

function DateTimeToStr(DateTime: TDateTime): string;

Преобразует дату и время из типа TDateTime в текстовую строку.

function StrToDatefconst S: string): TDateTime;

Преобразует текстовую строку в дату типа TDateTime. Строка должна содержать два или три числа, разделенных символом, содержащимся в DateSeparator. Формат даты в строке определяется в соответствии со значением переменной ShortDateFormat.

function StrToTime(const S: string): TDateTime;

Преобразует текстовую строку S в значение времени. Должен использоваться формат HH:NN:SS, где SS — может принимать значения 'AM' или ТМ', иначе означает секунды. Если необходимо получать время в 24-х часовой шкале, то элемент SS формата опус­кается. Если преобразование невозможно, возникает ИС EConvertError.

function

StrToDateTime(const S: string): TDateTime;

Преобразует текстовую строку S в дату и время в формате MM/DD/YY HH:NN:SS (элемент SS см. выше).

function FormatDateTime(const Format: string; DateTime: TdateTime): string;

Преобразует дату и время из типа TDateTime в тек­стовую строку, используя формат, задаваемый параметром Format (см. примеч. 1).

procedure DateTimeToStringfvar Result: string; const Format: string; DateTime: TDateTime);

Преобразует дату и время типа TDateTime в строку Result, используя формат, передаваемый параметром Format (см. примеч. 1).

Примечания:

1. Правила задания спецификатора формата для даты и времени отлича­ются от рассмотренных выше. В первую очередь надо иметь в виду то, что функции вроде FormatDateTime оперируют над одним значением TDateTime, а спецификаторы формата извлекают из него те или иные составные части. При этом могут использоваться:

с

Отображает дату, используя формат ShortDateFormat, затем отобра­жается время в формате LongTimeFormat. Время не отображается, если дробная часть переменной DateTime нулевая.

d

Отображает число месяца без нуля в левом разряде (1-31).

dd

Отображает число месяца с нулем в левом разряде (01-31).

ddd

Отображает день недели в соответствии с сокращенными именами из переменной ShortDayNames.

dddd

Отображает день недели в соответствии с полными именами из переменной LongDayNames.

ddddd

Отображает дату в соответствии с форматом ShortDateFormat.

dddddd

Отображает дату в соответствии с форматом LongDateFormat.

m

Отображает месяц как число без нуля в левом разряде (1-12).

mm

Отображает месяц как число с нулем в левом разряде (01-12).

irirnm

Отображает месяц в соответствии с сокращенными именами из переменной ShortMonthNames.

П1ГПГПП1

Отображает месяц в соответствии с полными именами из переменной Long MonthN am es.

УУ

Отображает год двумя цифрами.

УУУУ

Отображает год четырьмя цифрами.

h

Отображает час как число без нуля в левом разряде (0-23).

hh

Отображает час как число с нулем в левом разряде (00-23).

n

Отображает минуты как число без нуля в левом разряде (0-59).

nn

Отображает минуты как число с нулем в левом разряде (00-59).

s

Отображает секунды как число без нуля в левом разряде (0-59).

ss

Отображает секунды как число с нулем в левом разряде (00-59).

t

Отображает время в соответствии с форматом ShortTimeFormat.

tt

Отображает время в соответствии с форматом LongTimeFormat.

am/pin

Отображает время в 12-часовой шкале. 'AM' означает часы до полудня, 'РМ' — часы после полудня.

arnpm

Отображает время в 12-часовой шкале. При этом для времени до полудня отображается содержимое переменной TimeAMString, а после полудня — TimePMString.

a/p

Отображает время в 12-часовой шкале, 'а' означает часы до полудня, 'р' — часы после полудня.

/

Отображает символ — разделитель даты, содержащийся в переменной DataSeparator.


Отображает символ — разделитель времени, содержащийся в переменной TimeSeparator.

'XX'/'XX'

Символы, заключаемые в простые или двойные кавычки, отображаются как есть и не подвергаются форматированию.

Например, результатом вызова функции с параметрами

FormatDateTime (' "Совещание состоится в" dddd, dirrmim, yyyy, ' + ' "в" hh:nn', StrToDateTime('12/31/95 23:55')) ;

будет строка 'Совещание состоится в среду, 31 декабря 1995 в 23:55' (естес­твенно, если вы переопределили значения элементов массива LongMonth-Names).

2. Спецификаторы am/pm, ampm, a/p используются вместе со спецификато­рами h и hh.

3. Спецификаторы могут быть указаны как в верхнем, так и в нижнем регистрах символов — это не играет роли.

4. Начальные значения всех используемых при форматировании даты и вре­мени переменных берутся из секции [inti] файла WIN.INI.

 
« Предыдущая статья   Следующая статья »