diff --git a/gestion/config/feries.py b/gestion/config/feries.py new file mode 100755 index 00000000..afbaff10 --- /dev/null +++ b/gestion/config/feries.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Pour déclarer les jours fériés. + Ça pourra servir à débrider ces jours-là. """ + +import dateutil.easter +import datetime + +def holidays(year): + """Génère la liste des jours fériés pour l'année ``year``. + Au format :py:module:`datetime.date`.""" + l = [] + l.append(datetime.date(year=year, month=1, day=1)) # 1er janvier : Jour de l'an + l.append(datetime.date(year=year, month=5, day=1)) # 1er mai : Fête du travail + l.append(datetime.date(year=year, month=5, day=8)) # 8 mai : Fête de la victoire + l.append(datetime.date(year=year, month=7, day=14)) # 14 juillet : Fête Nationale + l.append(datetime.date(year=year, month=8, day=15)) # 15 août : Assomption + l.append(datetime.date(year=year, month=11, day=1)) # 1er novembre : Toussaint + l.append(datetime.date(year=year, month=11, day=11)) # 11 novembre : Armistice + l.append(datetime.date(year=year, month=12, day=25)) # 25 décembre : Noël + # Pâques et conséquences + easter = dateutil.easter.easter(year) + day = datetime.timedelta(days=1) + l.append(easter + day) # Lundi de Pâques + l.append(easter + 39 * day) # Jeudi de l'Ascension + l.append(easter + 50 * day) # Lundi de Pentecôte + l.sort() + return l + +def is_ferie(day=None): + """Dit si ``day`` (au format :py:module:`datetime.date` est férié. (Par défaut aujourd'hui).""" + if day is None: + day = datetime.date.today() + return day in holidays(day.year) + +if __name__ == "__main__": + thisyear = datetime.date.today().year + for date in holidays(thisyear): + print date.isoformat()