• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Профессиональные И Просто Праздники

dimat

Well-known member
31.07.2008
508
0
BIT
0
Всем привет!

Задача в следущем: необходимо определить какие праздники отмечаются на указанную дату.
Все бы ничего(делаем и заполняем справочник с датой и названием праздника), но некоторые праздники не привязаны к конкретной дате, например - День строителя отмечается во второе воскресенье августа.

Наверняка кто то делал подобное, подскажите как это сделать?
 
N

nvyush

Для начала определиться, как хранить подобную информацию в справочнике. Во-первых, нужен признак, праздник привязан к дате или к дню недели. Далее, если праздник не привязан к дате, нужно хранить информацию о дне недели, номере дня недели и признак откуда считать — с начала или с конца месяца. Ну а потом заполнять календарь праздников на год, вычисляя, на какие даты приходятся праздники.
 
N

nvyush

Допустим, отсчёт ведётся с начала месяца, нам нужно воскресенье второй недели. Если месяц начинается с понедельника, мы должны добавить к дате понедельника 13 дней, если со вторника — 12 дней и т.д. Для вычисления необходимого сдвига определяем день недели первого дня месяца и вычитаем из 14. Для последнего/предпоследнего воскресенья с конца месяца аналогично пляшем от даты последнего дня месяца. Как-то так.
 

dimat

Well-known member
31.07.2008
508
0
BIT
0
Допустим, отсчёт ведётся с начала месяца, нам нужно воскресенье второй недели. Если месяц начинается с понедельника, мы должны добавить к дате понедельника 13 дней, если со вторника — 12 дней и т.д. Для вычисления необходимого сдвига определяем день недели первого дня месяца и вычитаем из 14. Для последнего/предпоследнего воскресенья с конца месяца аналогично пляшем от даты последнего дня месяца. Как-то так.
Извиняюсь что не конкретизировал свою проблему. Как узнать день недели первого/последнего дня месяца?
 
Мы в соцсетях:

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