Les dates des jours fériés
Tous les ans, lorsqu’il faut déterminer des dates pour des animations, on recherche celles des jours fériés. Aujourd’hui, on utilise beaucoup l’agenda de son téléphone portable et cette application ne propose pas la liste des jours fériés.
Certaines dates sont faciles à connaître comme Noël, le jour de l’an ou la fête nationale du 14 juillet. Par contre, pour Pâques ou la Pentecôte c’est plus compliqué !
Pour obtenir la liste des jours fériés on peut accéder à la page Service-Public.fr ou utiliser le module Python jours-feries-france.
Que fait il ?
Le module
jours-feries-france
permet de lister les jours fériés d’une zone.
Il y a 13 zones de définies :
- Métropole (par défaut)
- Alsace-Moselle
- Guadeloupe
- Guyane
- La Réunion
- Martinique
- Mayotte
- Nouvelle-Calédonie
- Polynésie Française
- Saint-Barthélémy
- Saint-Martin
- Saint-Pierre-et-Miquelon
- Wallis-et-Futuna
Pour la majorité des zones, les dates de jours fériés son identiques, pour certaines, il y a des jours fériés supplémentaires.
Installation
Sur une machine Debian, le module s’installe avec la commande :
pip install jours-feries-france
Si la commande pip n’est pas disponible, il faut l’installer avec la commande :
apt-get install python3-pip
Afficher les jours fériés
Le script suivant affiche la liste des jours fériés des différentes
zones.
Il sauvegarde également la liste des fériés de la zone métropole
dans un fichier ICS et que l’on peut importer dans un agenda comme celui
de Thunderbird.
Le script Python doit fonctionné sous Windows ; n’ayant pas de PC avec ce système d’exploitation, je ne l’ai pas testé.
from jours_feries_france import JoursFeries
from icalendar import Calendar, Event
import pytz
import datetime
import os
from pathlib import Path
import sys
zone = 'Métropole'
year = datetime.datetime.now().year
tday = datetime.date.today()
print ("\n===========================================================")
print("\n\tListe des jours férié")
print("\nNous sommes le ", tday)
print("\nSyntaxe d'appel : calendrier-ferie.py [annee]")
print("- Si l'année n'est pas précisée, la liste des jours fériés \nest celle de l'année en cour")
print("- La liste est sauvegardée dans le fichier jours-feries.ics \npour un import dans un agenda")
print ("\n===========================================================")
# print ("Année courante : ",year)
if len( sys.argv ) == 1:
print( "Jours férié pour l'année en cour" )
else:
try:
param = int( sys.argv[1])
year = param
except ValueError:
print( "Bad parameter value: %s" % strParam, file=sys.stderr )
exit()
print ("\nListe des jours fériés de l'année ", year)
print(JoursFeries.premier_janvier(year), ": 1er janvier")
print(JoursFeries.premier_mai(year), ": 1er mai")
print(JoursFeries.huit_mai(year), ": 8 mai")
print(JoursFeries.quatorze_juillet(year), ": 14 juillet")
print(JoursFeries.assomption(year), ": Assomption")
print(JoursFeries.toussaint(year), ": Toussaint")
print(JoursFeries.onze_novembre(year), ": 11 novembre")
print(JoursFeries.jour_noel(year), ": Jour de Noël")
print(JoursFeries.lundi_paques(year), ": Lundi de Pâques")
print(JoursFeries.ascension(year), ": Ascension")
print(JoursFeries.lundi_pentecote(year), ": Lundi de Pentecôte")
print ("\nPour la zone Alsace-Moselle :")
zone='Alsace-Moselle'
print(JoursFeries.vendredi_saint(year, zone), ": Vendredi saint")
print(JoursFeries.deuxieme_jour_noel(year, zone), ": 2ème jour de Noël")
print ("\nPour les zones Guadeloupe, Guyane, La Réunion, Martinique, Mayotte, Saint-Barthélémy et Saint-Martin :")
zone='Guadeloupe'
print(JoursFeries.abolition_esclavage(year, zone), ": Abolition de l'esclavage")
# Creation du calandrier
cal = Calendar()
# creation des evennements
event = Event()
event.add('summary', 'Jour de l\'an')
event.add('dtstart', JoursFeries.premier_janvier(year))
event.add('dtend', JoursFeries.premier_janvier(year))
cal.add_component(event)
event = Event()
event.add('summary', 'Fête du travail')
event.add('dtstart', JoursFeries.premier_mai(year))
event.add('dtend', JoursFeries.premier_mai(year))
cal.add_component(event)
event = Event()
event.add('summary', 'Armistice')
event.add('dtstart', JoursFeries.huit_mai(year))
event.add('dtend', JoursFeries.huit_mai(year))
cal.add_component(event)
event = Event()
event.add('summary', 'Fête nationnale')
event.add('dtstart', JoursFeries.quatorze_juillet(year))
event.add('dtend', JoursFeries.quatorze_juillet(year))
cal.add_component(event)
event = Event()
event.add('summary', 'Assomption')
event.add('dtstart', JoursFeries.assomption(year))
event.add('dtend', JoursFeries.assomption(year))
cal.add_component(event)
event = Event()
event.add('summary', 'Toussaint')
event.add('dtstart', JoursFeries.toussaint(year))
event.add('dtend', JoursFeries.toussaint(year))
cal.add_component(event)
event = Event()
event.add('summary', 'Noël')
event.add('dtstart', JoursFeries.jour_noel(year))
event.add('dtend', JoursFeries.jour_noel(year))
cal.add_component(event)
event = Event()
event.add('summary', 'Ascension')
event.add('dtstart', JoursFeries.ascension(year))
event.add('dtend', JoursFeries.ascension(year))
cal.add_component(event)
event = Event()
event.add('summary', 'Lundi de Pentecôte')
event.add('dtstart', JoursFeries.lundi_pentecote(year))
event.add('dtend', JoursFeries.lundi_pentecote(year))
cal.add_component(event)
# directory = str(Path(__file__).parent.parent) + "/"
# print(directory)
# f = open(os.path.join(directory, 'example.ics'), 'wb')
f = open('jours-feries.ics', 'wb')
f.write(cal.to_ical())
f.close()
Le résultat :
[dim. févr. 13 - 19:09:12] - ~/bin/Jours-feries
2009 [yvon@nanda3] $ python3 ./calendrier-ferie.py
===========================================================
Liste des jours férié
Nous sommes le 2022-02-13
Syntaxe d'appel : calendrier-ferie.py [annee]
- Si l'année n'est pas précisée, la liste des jours fériés
est celle de l'année en cour
- La liste est sauvegardée dans le fichier jours-feries.ics
pour un import dans un agenda
===========================================================
Jours férié pour l'année en cour
Liste des jours fériés de l'année 2022
2022-01-01 : 1er janvier
2022-05-01 : 1er mai
2022-05-08 : 8 mai
2022-07-14 : 14 juillet
2022-08-15 : Assomption
2022-11-01 : Toussaint
2022-11-11 : 11 novembre
2022-12-25 : Jour de Noël
2022-04-18 : Lundi de Pâques
2022-05-26 : Ascension
2022-06-06 : Lundi de Pentecôte
Pour la zone Alsace-Moselle :
2022-04-15 : Vendredi saint
2022-12-26 : 2ème jour de Noël
Pour les zones Guadeloupe, Guyane, La Réunion, Martinique, Mayotte, Saint-Barthélémy et Saint-Martin :
2022-05-27 : Abolition de l'esclavage
[dim. févr. 13 - 19:09:20] - ~/bin/Jours-feries
2010 [yvon@nanda3] $