Je recherche un moyen de déterminer si une date donnée est une "vacances", étant donné un calendrier de vacances. P>
Plus précisément, vous pourriez dire Je reconnais qu'il n'y a pas de trivial em> moyen de le faire pour toutes les vacances pendant toutes les années. Par exemple, tandis que Noël est toujours le 25 décembre, à des fins du gouvernement fédéral, parfois nous Je ne cherche pas de calculs pour chaque vacances. Je me demande davantage s'il y a un format de fichier standard accepté qui répertorie les jours fériés par année et, dans l'affirmative, s'il y a des modules - en Python, plus précisément, mais je suis flexible - qui comprennent comment lire ledit format. De même, le format de fichier définirait les week-ends - qui sont normalement samedi et dimanche, mais dans certaines régions, il peut être vendredi et samedi, etc. p> is_holiday (DateTime.date, "USA") code> qui répondrait si la date donnée est une fête pour le calendrier nommé "USA". p>
4 Réponses :
Mozilla a un ensemble de fichiers de vacances fournies par les utilisateurs au format .ics . Cela peut vous aider à démarrer. Malheureusement, ils vont à des plages de dates différentes. iCalShare a aussi des calendriers de vacances dans . format ics. p>
Remarque: strong> p>
Certains jours fériés sont Je l'ai trouvé dans le passé qu'une approche hiérarchique fonctionne. par exemple. vérifier un calendrier de vacances de la ville, puis em> un calendrier de l'Etat, puis em> un calendrier de campagne. p>
Il y a un module Python pour lire les fichiers .ics appelés iCalendar (également sur pypi ). Je ne peux pas se porter garant pour sa qualité, malheureusement. P>
État code> ou
lié région code>, plutôt que.
lié pays code> p>
Blockquote>
D'accord sur l'État / la région - "Les États-Unis" dans mon exemple trivial n'était pas le nom du pays, ce n'était que le nom du "calendrier". Pourrait avoir tout aussi facilement été is_holiday (datetime.date, "bonjour monde") code>
Je ai pensé autant. Ce que j'ai dû faire dans le passé est de mettre en œuvre une stratégie de «chute» et, par conséquent, mes calendriers ont un concept de hiérarchie intégrée. par exemple. Mon calendrier de New York sait que son «parent» est le calendrier des États-Unis, etc.
Le classique Holiday.py a> module (une partie d'un ancien AS @ Brian's Réponse suggère, package code> assez vieux pour s'appuyer sur le module
heure code> plutôt que le rapport
relativement récent code>!) bon travail de calculs calendriers (y compris les traductions de calendrier <-> grégoriennes) mais ne traite pas de la persistance (lecture ou écriture). P>
ics code> est le format dominant pour "calendriers" dans un fichier (et il y a des fichiers de vacances, entre autres, dans ce format). Pour lire et écrire un fichier ICS dans Python, vous pouvez par exemple utiliser le package iCalendar , qui fait précisément cette tâche, ou vobject , qui est un ensemble beaucoup plus large supportant la gamme de formats vCard et vCalendar (y compris iCalendar). < / p>
lire les calculs calendriques: http: //emr.cs .uiuc.edu / Accueil / Regingold / Calendrier-Book / Index.shtml P>
Les différentes règles pour les vacances américaines sont fournies en détail, avec des algorithmes. P>
L'entreprise "Célébration" (déplaçant les vacances de Noël au 24ème parce que la 25e chute de samedi) est une simple question de vérifier la liste des vacances fédérales américaines. P>
http://www.opm.gov/operating_status_schediules/fedhol/2009.asp p>
Les États individuels varient, bien sûr, de même que les entreprises. Mais c'est un début. P>
Je suis pas B> intéressé par le calcul des vacances, cependant. Différentes régions, différentes religions et règles différentes font qu'une tâche très difficile. Je serais heureux de stocker plusieurs fichiers différents, chacun pour représenter un "calendrier" différent. Je cherchais plus pour une spécification de fichier qui fonctionnerait sans inventer le mien. .ique est un début, mais semble être trop b>, car il est également utilisé pour "événements", etc.
@Freememory: "Je cherchais plus pour certaines spécifications de fichier". Bon. Mettez à jour votre question pour dire que très, très clairement.
@S. Lott: Peut-être lu le dernier paragraphe? "Je ne cherche pas de calculs pour chaque jour férié. Je me demande davantage s'il y a un peu d'acceptation, Format de fichier standard B> qui répertorie les jours fériés par année" (accent ajouté).
@Freememory: Veuillez mettre à jour votre question pour dire que très, très clairement. Votre question dit beaucoup de choses. Peut-être trop de choses. Voici le point. Si quelqu'un (c'est-à-dire moi) n'a pas eu la question de savoir alors qu'il est peut-être possible qu'il puisse supporter un peu de clarification. Je suis une petite taille d'échantillon, mais il est possible que ce ne soit pas juste i> moi.
Je pensais qu'il n'y avait pas d'ambiguïté du tout. Je suis (évidemment) un petit échantillon :-)
Une autre bonne et complète de données de vacances est KDE's Kholidays: P>
Voir plus sur http://community.kde.org/kde_pim/kholidays p>