Большинство программ, которые вы пишете, нуждаются в реализации некоторой формы функций даты, возвращающих текущую дату и время. Свидания настолько важны в повседневной жизни, что с ними легко работать, не задумываясь. Паскаль также предоставляет мощные инструменты для арифметики дат, которые упрощают манипулирование датами. Однако фактическое имя и работа этих функций различны для разных компиляторов.
Получение текущей даты и времени
Функция Pascal TimeToString дает вам текущее время в форме с разделителями (:). В следующем примере показано, как получить текущее время —
program TimeDemo; uses sysutils; begin writeln ('Current time : ',TimeToStr(Time)); end.
Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат —
Current time : 18:33:08
Функция Date возвращает текущую дату в формате TDateTime . TDateTime — это двойное значение, которое требует некоторого декодирования и форматирования. Следующая программа демонстрирует, как использовать ее в вашей программе для отображения текущей даты:
Program DateDemo; uses sysutils; var YY,MM,DD : Word; begin writeln ('Date : ',Date); DeCodeDate (Date,YY,MM,DD); writeln (format ('Today is (DD/MM/YY): %d/%d/%d ',[dd,mm,yy])); end.
Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат —
Date: 4.111300000000000E+004 Today is (DD/MM/YY):23/7/2012
Функция Now возвращает текущую дату и время —
Program DatenTimeDemo; uses sysutils; begin writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now)); end.
Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат —
Date and Time at the time of writing : 23/7/2012 18:51:
Free Pascal предоставляет простую структуру меток времени с именем TTimeStamp , которая имеет следующий формат:
type TTimeStamp = record Time: Integer; Date: Integer; end;
Различные функции даты и времени
Free Pascal предоставляет следующие функции даты и времени —
Sr.No. | Название и описание функции |
---|---|
1 |
function DateTimeToFileDate (DateTime: TDateTime): LongInt; Преобразует тип DateTime в дату файла. |
2 |
Функция DateTimeToStr (DateTime: TDateTime) :; Создает строковое представление DateTime |
3 |
function DateTimeToStr (DateTime: TDateTime; const FormatSettings: TFormatSettings) :; Создает строковое представление DateTime |
4 |
процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime); Создает строковое представление DateTime |
5 |
процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime; const FormatSettings: TFormatSettings); Создает строковое представление DateTime |
6 |
процедура DateTimeToSystemTime (DateTime: TDateTime; выход SystemTime: TSystemTime); Преобразует DateTime в системное время |
7 |
function DateTimeToTimeStamp (DateTime: TDateTime): TTimeStamp; Преобразует DateTime в метку времени |
8 |
Функция DateToStr (Date: TDateTime) :; Создает строковое представление даты |
9 |
function DateToStr (Date: TDateTime; const FormatSettings: TFormatSettings) :; Создает строковое представление даты |
10 |
Функция Date: TDateTime; Получает текущую дату |
11 |
function DayOfWeek (DateTime: TDateTime): Integer; Получает день недели |
12 |
процедура DecodeDate (Дата: TDateTime; год выхода: слово; месяц выхода: слово; день выхода: слово); Декодирует DateTime в год, месяц и день |
13 |
процедура DecodeTime (время: TDateTime; вне часа: слово; вне минуты: слово; вне секунды: слово; вне миллисекунды: слово); Декодирует DateTime в часы, минуты и секунды |
14 |
функция EncodeDate (год: слово; месяц: слово; день: слово): TDateTime; Кодирует год, день и месяц в DateTime |
15 |
функция EncodeTime (час: слово; минута: слово; секунда: слово; миллисекунда: слово): TDateTime; Кодирует часы, минуты и секунды в DateTime |
16 |
Функция FormatDateTime (const FormatStr:; DateTime: TDateTime) :; Возвращает строковое представление DateTime |
17 |
функция FormatDateTime (const FormatStr:; DateTime: TDateTime; const FormatSettings: TFormatSettings) :; Возвращает строковое представление DateTime |
18 |
функция IncMonth (const DateTime: TDateTime; NumberOfMonths: Integer = 1): TDateTime; Добавляет 1 к месяцу |
19 |
function IsLeapYear (Год: Слово): Boolean; Определяет, является ли год високосным |
20 |
function MSecsToTimeStamp (MSecs: Comp): TTimeStamp; Преобразует количество миллисекунд в метку времени |
21 |
функция сейчас: TDateTime; Получает текущую дату и время |
22 |
function StrToDateTime (const S :): TDateTime; Преобразует строку в DateTime |
23 |
function StrToDateTime (const s: ShortString; const FormatSettings: TFormatSettings): TDateTime; Преобразует строку в DateTime |
24 |
function StrToDateTime (const s: AnsiString; const FormatSettings: TFormatSettings): TDateTime; Преобразует строку в DateTime |
25 |
function StrToDate (const S: ShortString): TDateTime; Преобразует строку в дату |
26 |
function StrToDate (const S: Ansistring): TDateTime; Преобразует строку в дату |
27 |
function StrToDate (const S: ShortString; разделитель: Char): TDateTime; Преобразует строку в дату |
28 |
function StrToDate (const S: AnsiString; разделитель: Char): TDateTime; Преобразует строку в дату |
29 |
function StrToDate (const S: ShortString; const useformat:; разделитель: Char): TDateTime; Преобразует строку в дату |
30 |
function StrToDate (const S: AnsiString; const useformat:; separator: Char): TDateTime; Преобразует строку в дату |
31 |
function StrToDate (const S: PChar; Len: Integer; const useformat:; separator: Char = # 0): TDateTime; Преобразует строку в дату |
32 |
function StrToTime (const S: Shortstring): TDateTime; Преобразует строку во время |
33 |
function StrToTime (const S: Ansistring): TDateTime; Преобразует строку во время |
34 |
function StrToTime (const S: ShortString; разделитель: Char): TDateTime; Преобразует строку во время |
35 |
function StrToTime (const S: AnsiString; разделитель: Char): TDateTime; Преобразует строку во время |
36 |
function StrToTime (const S:; FormatSettings: TFormatSettings): TDateTime; Преобразует строку во время |
37 |
function StrToTime (const S: PChar; Len: Integer; разделитель: Char = # 0): TDateTime; Преобразует строку во время |
38 |
function SystemTimeToDateTime (const SystemTime: TSystemTime): TDateTime; Преобразует системное время в datetime |
39 |
function TimeStampToDateTime (const TimeStamp: TTimeStamp): TDateTime; Преобразует метку времени в DateTime |
40 |
function TimeStampToMSecs (const TimeStamp: TTimeStamp): comp; Преобразует метку времени в количество миллисекунд |
41 |
функция TimeToStr (Time: TDateTime) :; Возвращает строковое представление времени |
42 |
function TimeToStr (Time: TDateTime; const FormatSettings: TFormatSettings) :; Возвращает строковое представление времени |
43 |
функция Time: TDateTime; Получить текущее время |
function DateTimeToFileDate (DateTime: TDateTime): LongInt;
Преобразует тип DateTime в дату файла.
Функция DateTimeToStr (DateTime: TDateTime) :;
Создает строковое представление DateTime
function DateTimeToStr (DateTime: TDateTime; const FormatSettings: TFormatSettings) :;
Создает строковое представление DateTime
процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime);
Создает строковое представление DateTime
процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime; const FormatSettings: TFormatSettings);
Создает строковое представление DateTime
процедура DateTimeToSystemTime (DateTime: TDateTime; выход SystemTime: TSystemTime);
Преобразует DateTime в системное время
function DateTimeToTimeStamp (DateTime: TDateTime): TTimeStamp; Преобразует DateTime в метку времени
Функция DateToStr (Date: TDateTime) :;
Создает строковое представление даты
function DateToStr (Date: TDateTime; const FormatSettings: TFormatSettings) :;
Создает строковое представление даты
Функция Date: TDateTime;
Получает текущую дату
function DayOfWeek (DateTime: TDateTime): Integer;
Получает день недели
процедура DecodeDate (Дата: TDateTime; год выхода: слово; месяц выхода: слово; день выхода: слово);
Декодирует DateTime в год, месяц и день
процедура DecodeTime (время: TDateTime; вне часа: слово; вне минуты: слово; вне секунды: слово; вне миллисекунды: слово);
Декодирует DateTime в часы, минуты и секунды
функция EncodeDate (год: слово; месяц: слово; день: слово): TDateTime;
Кодирует год, день и месяц в DateTime
функция EncodeTime (час: слово; минута: слово; секунда: слово; миллисекунда: слово): TDateTime;
Кодирует часы, минуты и секунды в DateTime
Функция FormatDateTime (const FormatStr:; DateTime: TDateTime) :;
Возвращает строковое представление DateTime
функция FormatDateTime (const FormatStr:; DateTime: TDateTime; const FormatSettings: TFormatSettings) :;
Возвращает строковое представление DateTime
функция IncMonth (const DateTime: TDateTime; NumberOfMonths: Integer = 1): TDateTime;
Добавляет 1 к месяцу
function IsLeapYear (Год: Слово): Boolean;
Определяет, является ли год високосным
function MSecsToTimeStamp (MSecs: Comp): TTimeStamp;
Преобразует количество миллисекунд в метку времени
функция сейчас: TDateTime;
Получает текущую дату и время
function StrToDateTime (const S :): TDateTime;
Преобразует строку в DateTime
function StrToDateTime (const s: ShortString; const FormatSettings: TFormatSettings): TDateTime;
Преобразует строку в DateTime
function StrToDateTime (const s: AnsiString; const FormatSettings: TFormatSettings): TDateTime;
Преобразует строку в DateTime
function StrToDate (const S: ShortString): TDateTime;
Преобразует строку в дату
function StrToDate (const S: Ansistring): TDateTime;
Преобразует строку в дату
function StrToDate (const S: ShortString; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: AnsiString; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: ShortString; const useformat:; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: AnsiString; const useformat:; separator: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: PChar; Len: Integer; const useformat:; separator: Char = # 0): TDateTime;
Преобразует строку в дату
function StrToTime (const S: Shortstring): TDateTime;
Преобразует строку во время
function StrToTime (const S: Ansistring): TDateTime;
Преобразует строку во время
function StrToTime (const S: ShortString; разделитель: Char): TDateTime;
Преобразует строку во время
function StrToTime (const S: AnsiString; разделитель: Char): TDateTime;
Преобразует строку во время
function StrToTime (const S:; FormatSettings: TFormatSettings): TDateTime;
Преобразует строку во время
function StrToTime (const S: PChar; Len: Integer; разделитель: Char = # 0): TDateTime;
Преобразует строку во время
function SystemTimeToDateTime (const SystemTime: TSystemTime): TDateTime;
Преобразует системное время в datetime
function TimeStampToDateTime (const TimeStamp: TTimeStamp): TDateTime;
Преобразует метку времени в DateTime
function TimeStampToMSecs (const TimeStamp: TTimeStamp): comp;
Преобразует метку времени в количество миллисекунд
функция TimeToStr (Time: TDateTime) :;
Возвращает строковое представление времени
function TimeToStr (Time: TDateTime; const FormatSettings: TFormatSettings) :;
Возвращает строковое представление времени
функция Time: TDateTime;
Получить текущее время
Следующий пример иллюстрирует использование некоторых из вышеуказанных функций —
Program DatenTimeDemo; uses sysutils; var year, month, day, hr, min, sec, ms: Word; begin writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now)); writeln('Today is ',LongDayNames[DayOfWeek(Date)]); writeln; writeln('Details of Date: '); DecodeDate(Date,year,month,day); writeln (Format ('Day: %d',[day])); writeln (Format ('Month: %d',[month])); writeln (Format ('Year: %d',[year])); writeln; writeln('Details of Time: '); DecodeTime(Time,hr, min, sec, ms); writeln (format('Hour: %d:',[hr])); writeln (format('Minutes: %d:',[min])); writeln (format('Seconds: %d:',[sec])); writeln (format('Milliseconds: %d:',[hr])); end.
Когда приведенный выше код был скомпилирован и выполнен, он дал следующий результат: