• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Последний день месяца

  • Автор темы LIGHT
  • Дата начала
L

LIGHT

Привет всем!

Не оходо писать сложную функцию определения последнего дня месяца, может есть что-то существующее на собаках?

Типа @MaxDay(@Month(@Now))
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Так, например:
date := @Today;
(@Adjust(date; 0; 1; 0; 0; 0; 0) - date) / 86400
 
L

LIGHT

Спасибо! Фунциклирует, а вот не как не могу получить макс дней в прошлом месяце, а очень нужно

Для отчета тредуется выгребать документы прошлого месяца, т.е. так:
Код:
MaxDay:=(@Adjust(@Today; 0; 1; 0; 0; 0; 0) - @Today) /86400;

(OrigYesDate >= @Date(2008; (@Month(@Now))-1; 1; 0; 0; 0)) & (OrigYesDate <= @Date(2008; (@Month(@Now))-1; MaxDay; 0; 0; 0))

Получается значение MaxDay принимает максимальное дней в текущем месяце.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
(@Adjust(@Today; 0; 1; 0; 0; 0; 0) - @Today) /86400;
Вместо @Today нужно взять дату из прошлого месяца.

(OrigYesDate >= @Date(2008; (@Month(@Now))-1; 1; 0; 0; 0)) & (OrigYesDate <= @Date(2008; (@Month(@Now))-1; MaxDay; 0; 0; 0))
Прошлый месяц берешь неправильно. Если сейчас январь, то предыдущий месяц какой у тебя получится? Используй @Adjust.

И вообще не проще ли проверить только год и месяц?
Код:
date := @Adjust(@Today; 0; -1; 0; 0; 0; 0);
@Year(OrigYesDate) = @Year(date) & @Month(OrigYesDate) = @Month(date)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!