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

Тема в разделе "Lotus - Программирование", создана пользователем dimat, 20 дек 2011.

  1. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Всем привет!

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

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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Для начала определиться, как хранить подобную информацию в справочнике. Во-первых, нужен признак, праздник привязан к дате или к дню недели. Далее, если праздник не привязан к дате, нужно хранить информацию о дне недели, номере дня недели и признак откуда считать — с начала или с конца месяца. Ну а потом заполнять календарь праздников на год, вычисляя, на какие даты приходятся праздники.
     
  3. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    В этом то и проблема, как вычислить дату исходя из этих данных
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Допустим, отсчёт ведётся с начала месяца, нам нужно воскресенье второй недели. Если месяц начинается с понедельника, мы должны добавить к дате понедельника 13 дней, если со вторника — 12 дней и т.д. Для вычисления необходимого сдвига определяем день недели первого дня месяца и вычитаем из 14. Для последнего/предпоследнего воскресенья с конца месяца аналогично пляшем от даты последнего дня месяца. Как-то так.
     
  5. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    Извиняюсь что не конкретизировал свою проблему. Как узнать день недели первого/последнего дня месяца?
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    @Weekday / Weekday
     
  7. dimat

    dimat Lotus team
    Lotus team

    Регистрация:
    31 июл 2008
    Сообщения:
    518
    Симпатии:
    0
    ТОчно! совем забыл про эту функцию
    Спасибо
     
Загрузка...

Поделиться этой страницей