Ивт-20 / САОД и др / ОЗО_2010-САОД_1 / Методический материал / Дата - Время
.docТема: “Дата – Время”
Тип TdateTime представляет собой вещественное число. Целая часть определяет дату ( 0 соответствует дата 30/12/1899 ) , дробная часть определяет время.
Тип TDate определяет только дату, а тип TTime только время. Эти три типа являются совместимыми и могут использоваться в любом сочетании в операторе присваивания.
Для ввода значений типа TDateTime используется функция StrToDateTime (String )
Пример
DT:= StrToDateTime(‘01/09/2006 09:10:30’)
Замечание: между датой и временем ставится пробел. Формат даты и времени определяется настройками Windows. Так для Русского могут использоваться следующие форматы дд/мм/гггг ( или дд.мм.гггг или дд-мм-гггг), чч:мм:сс.
Для обратного преобразования используется функция function DateTimeToStr (DateTime :TDateTime).
Пример
Edit1.Text:= DateTimeToStr(DT’)
Вышеуказанные функции используются редко, как правило используется раздельный ввод ( вывод ) даты и времени.
Для ввода даты используется функция StrToDate (S:String )
Пример
DD:= StrToDateTime(’01.09.2006’)
Для ввода времени используется функция StrToTime (S:String )
Пример
TT:= StrToTime(’10:30:00’)
Для вывода даты используется функция DateToStr (DateTime :TDateTime)
Пример
Edit1.Text:= DateToStr(DD’)
Для вывода времени используется функция TimeToStr (DateTime :TDateTime)
Пример
Edit1.Text:=TimeToStr(TT’)
Для вывода даты времени по определенному шаблону используют функцию FormatDateTime(S:String, D:TDataTime)
Пример
Edit1.Text:=FormatDateTime('mmmm', D); // вывод месяца по формату 'mmmm'
Edit1.Text:=FormatDateTime('dddd',D); // вывод дня по формату 'dddd'
Варианты шаблонов
‘d’ – отображает число месяца без нуля ( 25)
‘dd’ – отображает число месяца с нулём ( 25)
‘ddd’ – отображает день недели в сокращенном формате ( Bc)
‘dddd’ – отображает день недели в полном формате ( Bоcкресенье)
‘m’ – отображает месяц без нуля ( 5)
‘mm’ – отображает месяц с нулём ( 05)
‘mmm’ – отображает месяц в сокращенном формате ( Сен)
‘mmmm’ – отображает месяц в полном формате ( Сентябрь)
‘yy’ – отображает год двумя цифрами ( 06)
‘yyyy’ – отображает год четырьмя цифрами ( 2006)
‘h’ – отображает час без нуля ( 8)
‘hh’ – отображает час с нулём ( 08)
‘n’ – отображает минуты без нуля ( 25)
‘nn’ – отображает минуты с нулём ( 05)
‘s’ – отображает секунды без нуля ( 25)
‘ss’ – отображает секунды с нулём ( 05)
‘t’ – отображает время в сокращенном формате ( 1:30)
‘tt’ – отображает время в полном формате ( 1:30:25)
‘ddddd’ – отображает дату в сокращенном формате ( 03.09.2006)
‘dddddd’ – отображает время в полном формате ( 3 Сентябрь 2006 г.)
Для задания текущей даты и времени используются функции:
-
function Now:TDateTime – возвращает текущую дату и время
-
function Date:TDateTime – возвращает текущую дату
-
function Time:TDateTime – возвращает текущее время
Пример
Edit1.Text:=TimeToStr(Time) // текущее время
Edit1.Text:=DateToStr(Date) // текущая дата
Edit1.Text:=DateToStr(Date-1) // дата вчерашнего дня
С данными формата TDateTime, TDate можно использовать операцию + ( добавление числа дней ) и – (уменьшение даты на число дней)
Пример
Edit1.Text:=DateToStr(Date+2) // дата послезавтрашнего дня
С данными формата TDateTime, TTime можно использовать операцию + ( добавление числа секунд ) и – (уменьшение времени на число секунд)
Пример
Edit1.Text:=TimeToStr(Time+0.00001) // время на секунду больше текущего
Edit1.Text:=TimeToStr(Time-0.00001*60) // время на минуту меньше текущего
Для выделения из формата TdateTime (TDate) года, месяца, дня используется процедура
procedure DecodeDate( Date: TdateTime; var Year, Month, Day :Word)
Пример
DecodeDate(DT, YY, MM, DD) // где DT – переменная типа TdateTime,
YY- принимает значение года
MM- принимает значение месяца
DD- принимает значение дня
DecodeDate(Data,YY,MM,DD) // выделяет текущий год, месяц, день
Обратное преобразование осуществляется функцией EncodeDate ( Year, Month, Day :Word): TDateTime, которая по году, месяцу, дню определяет значение переменной типа TdateTime (TDate)
Пример
DT:= EncodeDate (2005,4,12)
Для определения дня недели (1- воскресение , 7 суббота ) используется функция
Day Of Week (Date: TdateTime ):Integer
Пример
K:= Day Of Week (Date) ; // определяет номер дня неделя текущей даты
Для выделения из формата TdateTime (TDate) часов, минут, секунд, миллисекунд. используется процедура
procedure DecodeTime ( Date: TdateTime; var Hour, Min, Sec, Msec :Word)
Пример
DecodeTime(TT, HH, MM, SS , MS) // где TT – переменная типа TdateTime (Ttime)
HH- принимает значение часа
MM- принимает значение минут
SS- принимает значение секунд
MS- принимает значение миллисекунд
Обратное преобразование осуществляется функцией EncodeTime ( Hour, Min, Sec, Msec :Word ): TDateTime которая по часу, минутам, секундам , миллисекундам определяет значение переменной типа TdateTime (TTime)
Пример
TT:= EncodeTime (20,10,30,100)
Компонент Timer (System ) включает событие OnTimer через интервал времени, который определяется свойством Interval (интервал задается в миллисекундах ). Timer включается ( выключается ) по свойству Enabled.
procedure TForm1.Button10Click(Sender: TObject);
begin
Timer1.Interval:=1000;// Установка такта (тика) в милисекундах
Timer1.Enabled:=True; // Включение таймера
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
T1:=T1+1;//Изменение числа тиков ( секунд )
end;
Компонент MonthCalendar (Win32) используется для ввода и вывода даты. Основное свойство Date.
Пример
procedure TForm2.MonthCalendar1Click(Sender: TObject);
begin
D:=MonthCalendar1.Date; // Ввод даты из календаря
end;
Пример
procedure TForm2.Button1Click(Sender: TObject);
begin
MonthCalendar1.Date:=DD; // Вывод даты в календарь
end;