Добавить к дате и разность дат

FastCode 1516 12 22 67

Функции для работы с датами как в языке запросов

Автор: ildarovich

Функция ДобавитьКДате(Дата1, Количество, Период) Экспорт
    Шаг = Новый Структура("Год, Квартал, Месяц, Неделя, День, Час, Минута, Секунда", 12, 3, 1, -604800, -86400, -3600, -60, -1);
    Возврат ?(Шаг[Период] > 0, ДобавитьМесяц(Дата1, Количество * Шаг[Период]), Дата1 - Количество * Шаг[Период])
КонецФункции
Функция РазностьДат(Дата1, Дата2, Период) Экспорт
    Шаг = Новый Структура("Год, Квартал, Месяц, Неделя, День, Час, Минута, Секунда", 12, 3, 1, -604800, -86400, -3600, -60, -1);
    Возврат Цел(?(Шаг[Период] > 0, Год(Дата2) * 12 + Месяц(Дата2) - 1, '00010101' - Дата2) / Шаг[Период]) 
          - Цел(?(Шаг[Период] > 0, Год(Дата1) * 12 + Месяц(Дата1) - 1, '00010101' - Дата1) / Шаг[Период])
КонецФункции

//Функция Квартал

Функция Квартал(Дата) Экспорт  
    Возврат Цел((Месяц(Дата) - 1) / 3) + 1
КонецФункции

//Названия месяцев прописью

Формат(Дата(1, НомерМесяца, 1),"ДФ=ММММ")

//Название дней недели прописью

Формат(Дата(1, 1, 2 + НомерДняНедели),"ДФ=дддд")
0
Орфографическая ошибка в дддд: дддд

См. также

РазностьДатПоКалендарю (БСП)

Прибавить к дате день

РазностьМассивов (БСП)

Прибавить рабочие дни к дате (Запрос)

Прибавить рабочие дни к дате

Добавить (БСП)

Модератору