Праздничные Календари, Форматы файлов, и др.

Я ищу способ выяснить, является ли данная дата "праздником", учитывая некоторый праздничный календарь.

А именно, Вы могли бы сказать is_holiday (datetime.date, "USA") который ответил бы, является ли данная дата праздником для календаря под названием "США".

Я распознаю, что нет никакого тривиального способа делать это для всех праздников в течение всех лет. Например, в то время как Рождество всегда 25-го декабря в целях федерального правительства, иногда мы празднуем (т.е. это не рабочий день), 24-го декабря, и иногда на 26-м. Similary, еврейские праздники (например), ежегодно мигрируют (относительно Григорианского календаря).

Я не ищу вычисления для каждого праздника. Я задаюсь вопросом больше, если существует некоторый принятый, стандартный формат файла, который перечисляет праздники к году, и если так, если существуют какие-либо модули - в Python, а именно, но я гибок - которые понимают, как читать, сказал формат. Точно так же формат файла определил бы выходные - которые являются обычно субботой и в воскресенье, но в определенных регионах это может быть пятница и в субботу и т.д.

11
задан FreeMemory 31 December 2009 в 17:08
поделиться

3 ответа

Mozilla располагает набором файлов праздничных дней, предоставленных пользователем в формате .ics. Это может помочь вам начать работу. К сожалению, они выходят в различные диапазоны дат. iCalShare также имеет календари выходных дней в формате .ics.

Примечание:

Некоторые праздники относятся к состоянию или региону , а не к стране .

В прошлом я обнаружил, что работает иерархический подход, например, проверка городского праздничного календаря, потом календаря штатов, потом календаря стран.

Для чтения .ics файлов существует модуль Python, называемый icalendar (также на pypi). К сожалению, я не могу поручиться за его качество

.
6
ответ дан 3 December 2019 в 10:03
поделиться

Классический модуль holiday.py (часть старого dateutil пакета -- достаточно старый, чтобы полагаться на модуль time, а не на относительно недавнее datetime! ) хорошо справляется с каландрическими вычислениями (включая переводы по еврейскому <-> григорианскому календарю), но не занимается персистентностью (чтение или запись).

Как следует из ответа Брайана, ics является доминирующим форматом для "календарей" в файле (а есть файлы праздников, среди прочего, и в таком формате). Для чтения и записи файла ics на Python можно, например, использовать пакет iCalendar, который выполняет именно эту задачу, или vobject, который является гораздо более широким пакетом, поддерживающим диапазон форматов vCard и vCalendar (в том числе и iCalendar).

.
2
ответ дан 3 December 2019 в 10:03
поделиться

Читайте Календарные вычисления: http://emr.cs.uiuc.edu/home/reingold/calendar-book/index.shtml

Подробно представлены различные правила, касающиеся праздников в США, с помощью алгоритмов.

Бизнес "Праздновать" (перенос Рождественских праздников на 24-е, потому что 25-е выпадает на субботу) - это простой вопрос для проверки списка федеральных праздников США.

http://www.opm.gov/Operating_Status_Schedules/fedhol/2009.asp

Отдельные штаты, конечно, различаются, как и бизнес. Но это начало.

0
ответ дан 3 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: