Dt add

Материал из Eludia
Перейти к: навигация, поиск

Описание

Прибавляет к заданной дате нужный интервал.

Дата может быть задана в виде любой строки, воспринимаемой процедурой dt_y_m_d: в частности, подходят форматы YYYY-MM-DD и ДД.ММ.ГГГГ. Строка может оканчиваться на триплет часы-минуты-секунды в формате 'hh:mm:ss'.

Интервал имеет формат

число число ... число [вид]

"Число" — это целое (возможно, отрицательное) число.

"Вид" — это один из постфиксов процедур Add_Delta_... из модуля Date::Calc, а именно:

Days
дни (принимается по умолчанию);
YM
годы и месяцы;
YMD
годы, месяцы и дни;
DHMS
дни, часы, минуты и секунды;
YMDHMS
годы, месяцы, дни, часы, минуты и секунды.

Кроме того, можно использовать буквы H, M и S для часов, минут и секунд соответственно — они работают так же, как DHMS, однако требуют всего одного аргумента (остальные нули подставляются автоматически).

Данный параметр может также содержать модификатор '24': например, '+1 H24'. Если он указан, то граница суток (полночь) в результате относится к оконченным суткам и изображается как '24:00:00'. По умолчанию же она относится к наступающим суткам и пишется как '00:00:00'.

Вычисления осуществляются посредством вызова процедуры Add_Delta_..., которой передаётся результат dt_y_m_d и интервал, нарезанный по пробельным символам.

Результат процедуры зависит от контекста вызова и формата входной даты.

Если второй операнд так или иначе касался часов, минут и секунд, то результат будет содержать соответствующую часть, иначе — нет.

Если функция вызывается в списочном контексте, то возвращается массив ($Y, $M, $D) или ($Y, $M, $D, $h, $m, $s).

Иначе, если 1-й параметр имел вид 'YYYY-MM-DD', то возвращается дата в формате 'YYYY-MM-DD' или 'YYYY-MM-DD hh:mm:ss';

В противном случае возвращается дата в формате 'ДД.ММ.ГГГГ' (dt_dmy) или 'ДД.ММ.ГГГГ чч:мм:сс'.

Синопсис (Perl 5)

my $dt = dt_add ('2009-07-31',  1      ); # '2009-08-01'

my $dt = dt_add ('31.07.2009', -1      ); # '30.07.2009'

my @dt = dt_add ('31.07.2009', '0 1 YM'); # (2008, 08, 31)

my $dt = dt_add ('03.09.2009', '0 H24' ); # '02.09.2009 24:00:00'
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Разработчику
Администратору
Инструменты