Учебники

Паскаль — дата и время

Большинство программ, которые вы пишете, нуждаются в реализации некоторой формы функций даты, возвращающих текущую дату и время. Свидания настолько важны в повседневной жизни, что с ними легко работать, не задумываясь. Паскаль также предоставляет мощные инструменты для арифметики дат, которые упрощают манипулирование датами. Однако фактическое имя и работа этих функций различны для разных компиляторов.

Получение текущей даты и времени

Функция Pascal TimeToString дает вам текущее время в форме с разделителями (:). В следующем примере показано, как получить текущее время —

Live Demo

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 возвращает текущую дату и время —

Live Demo

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;

Получить текущее время

Следующий пример иллюстрирует использование некоторых из вышеуказанных функций —

Live Demo

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.

Когда приведенный выше код был скомпилирован и выполнен, он дал следующий результат: