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

dimat

Well-Known Member
Lotus team
31.07.2008
516
0
#1
Всем привет!

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

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

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#2
Для начала определиться, как хранить подобную информацию в справочнике. Во-первых, нужен признак, праздник привязан к дате или к дню недели. Далее, если праздник не привязан к дате, нужно хранить информацию о дне недели, номере дня недели и признак откуда считать — с начала или с конца месяца. Ну а потом заполнять календарь праздников на год, вычисляя, на какие даты приходятся праздники.
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
#4
Допустим, отсчёт ведётся с начала месяца, нам нужно воскресенье второй недели. Если месяц начинается с понедельника, мы должны добавить к дате понедельника 13 дней, если со вторника — 12 дней и т.д. Для вычисления необходимого сдвига определяем день недели первого дня месяца и вычитаем из 14. Для последнего/предпоследнего воскресенья с конца месяца аналогично пляшем от даты последнего дня месяца. Как-то так.
 

dimat

Well-Known Member
Lotus team
31.07.2008
516
0
#5
Допустим, отсчёт ведётся с начала месяца, нам нужно воскресенье второй недели. Если месяц начинается с понедельника, мы должны добавить к дате понедельника 13 дней, если со вторника — 12 дней и т.д. Для вычисления необходимого сдвига определяем день недели первого дня месяца и вычитаем из 14. Для последнего/предпоследнего воскресенья с конца месяца аналогично пляшем от даты последнего дня месяца. Как-то так.
Извиняюсь что не конкретизировал свою проблему. Как узнать день недели первого/последнего дня месяца?