Главная » Free Pascal » Вычисление различных дат в формате TDateTime Free Pascal

0

В состав этой группы включены процедуры и функции, обеспечивающие вы- числение дат, соответствующих списку аргументов:

± даты, соответствующей началу того или иного компонента календарной даты;

± даты, соответствующей концу того или иного компонента календарной даты;

± даты,  полученной  из  заданной,  путем  сложения  с  приращением  указанного компонента календарной даты или времени.

В табл. 14.7 приведены функции, вычисляющие граничные значения (начало, конец) дат различных компонентов.

Таблица 14.7

Формат обращения

Пояснение

dt:=StartOfAYear(Year); dt:=EndOfAYear(Year);

Начало года, конец года

dt:=StartOfAMonth(Year, Month); dt:=EndOfAMonth(Year, Month)

Начало месяца, конец месяца

dt:=StartOfAWeek(Year, WeekOfYear); dt:=EndOfAWeek(Year, WeekOfYear)

Начало недели года, конец недели года

Таблица 14.7 (окончание)

Формат обращения

Пояснение

dt:=StartOfAday(Year, DayOfYear); dt:=EndOfAday(Year, DayOfYear);

Начало дня года, конец дня года

dt:=StartOfADay(Year, Month, DayOfMonth); dt:=EndOfADay(Year, Month, DayOfMonth);

Начало дня месяца конец дня месяца

dt:=StartOfAWeek(Year,WeekOfYear,DayOfWeek); dt:=EndOfAWeek(Year,WeekOfYear,DayOfWeek);

Начало дня недели, конец дня недели

dt2:=StartOfTheDay(dt1);

Начало дня для dt1

dt2:=EndOfTheDay(dt1);

Конец дня для dt1

dt2:=StartOfTheWeek(dt1);

Начало недели для dt1

dt2:=EndOfTheWeek(dt1);

Конец недели для dt1

dt2:=StartOfTheMonth(dt1);

Начало месяца для dt1

dt2:=EndOfTheMonth(dt1);

Конец месяца для dt1

dt2:=StartOfTheYear(dt1);

Начало года для dt1

dt2:=EndOfTheYear(dt1);

Конец года для dt1

Всем начальным датам соответствует время 00:00:00.000, а конечным — 23:59:59.999.

Список функций, реализующих вычисление дат, получающихся из заданной путем прибавления приращения по той или иной составляющей,  приведен  в табл. 14.8. Если значение приращения в списке аргументов опущено, то по умолча- нию к соответствующему компоненту прибавляется 1. Это соответствует общепри- нятому употреблению процедуры inc(x). Отличие функций Inc… состоит в том, что величина приращения может быть отрицательной, и это позволяет вычислять не только будущие, но и прошедшие даты.

Таблица 14.8

Формат вызова

Пояснение

dt2:=IncYear(dt1,[dY]);

Приращение года

dt2:=IncWeek(dt1,[dW]);

Приращение недели года

dt2:=IncDay(dt1,[dD]);

Приращение дня года

dt2:=IncHour(dt1,[dH]);

Приращение часов

dt2:=IncMinute(dt1,[dM]);

Приращение минут

Таблица 14.8 (окончание)

Формат вызова

Пояснение

dt2:=IncSecond(dt1,[dS]);

Приращение секунд

dt2:=IncMilliSecond(dt1,[dMls]);

Приращение миллисекунд

Несколько особняком стоят две следующие функции, возвращающие результат типа Word:

rpt:=NthDayOfWeek(dt); prew_w:=PreviosDayOfWeek(DayOfWeek);

Первая функция определяет количество повторений в месяце дня недели, пред- ставленного в дате dt формата TDateTime. Например, в январе 2009 г. среда встре- чается четыре раза, а четверг пять раз.

Вторая функция определяет номер дня недели, предшествующий аргументу DayOfWeek. Например, вторнику (DayOfWeek=2) предшествует понедельник, т. е. день недели с номером 1. А понедельнику предшествует воскресенье, т. е. день не- дели с номером 7.

Источник: Кетков, Ю. Л., Свободное программное обеспечение. FREE PASCAL для студентов и школьников, Ю. Л. Кетков, А. Ю. Кетков. — СПб.: БХВ-Петербург, 2011. — 384 с.: ил. + CD-ROM — (ИиИКТ)

По теме:

  • Комментарии