Дата и время в Delphi

Зачем иметь учебник только по датам и времени? Потому что это удивительно сложный и богатый предмет. И очень полезно, тем более что Delphi предоставляет обширную поддержку вычислений, преобразований и имен.

Тип данных TDateTime

Обработка даты и времени зависит от переменной TDateTime. Он используется для хранения комбинации даты и времени. Он также используется для хранения только значений даты или времени — значение времени и даты игнорируется соответственно. TDateTime определяется в системном блоке. Константы даты и подпрограммы определяются в единицах SysUtils и DateUtils.

Давайте рассмотрим несколько простых примеров присвоения значения переменной TDateTime:

var
data1, data2, data3 : TDateTime; // TDateTime variables
begin
data1 := Вчера; // Устанавливается начало вчерашнего дня
data2 := Сегодня; // Устанавливается текущая дата
data3 := Завтра; // Устанавливается начало завтрашнего
data4 := Прямо сейчас; // Устанавливается текущая дата и время
end;

data1 устанавливается на что-то вроде 04/01/2021 00:00:00
data2 устанавливается на что-то вроде 05/01/2021 00:00:00
data3 устанавливается на что-то вроде 06/01/2021 00:00:00
data4 устанавливается на что-то вроде 05/01/2021 19:33:15

Примечание: начало дня часто называют полночью в документации Delphi, но это вводит в заблуждение, так как это будет полночь не того дня.

Некоторые именованные значения даты

Delphi предоставляет некоторые полезные названия дней и месяцев, избавляя вас от скуки определения их в вашем собственном коде. Вот они:

Короткие и длинные названия месяцев

Обратите внимание, что эти массивы имен месяцев начинаются с index = 1.

var
month : Integer;
begin
for month := 1 to 12 do // Display the short and long month names
begin
ShowMessage(ShortMonthNames[month]);
ShowMessage(LongMonthNames[month]);
end;
end;

Процедура ShowMessage отображает следующую информацию:

January
February
March
April
May
June
July
August
September
October
November
December

Короткие и длинные названия дней

Важно отметить, что эти дневные массивы начинаются с индекса 1 = воскресенье. Это не очень хороший стандарт (он не соответствует стандарту ISO 8601), поэтому будьте осторожны при использовании с процедурами, совместимыми с ISO 8601, такими как DayOfTheWeek.

var
day : Integer;
begin
for day := 1 to 12 do // Отобразить короткие и длинные названия
begin
ShowMessage(Короткие названия [day]);
ShowMessage(Длинные названия[day]);
end;
end;

Процедура ShowMessage отображает следующую информацию:

Mon
Monday
Tue
Tuesday
Wed
Wednesday
Thu
Thursday
Fri
Friday
Sat
Saturday
Sun
Sunday

Расчеты даты и времени

Самое большое преимущество TDateTime — это диапазон вычислений, которые Delphi может сделать для вас. Их можно найти на домашней странице Delphi Basics в разделе даты и время/расчеты.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *