Skip to content

This lightweight PHP library provides simple methods to find all French public holidays đŸ‡«đŸ‡· (even those specific to territories, such as from Alsace-Moselle, or from France d'Outre-Mer) ; calculate dates in working days, "dĂ©lai franc" etc.

License

Notifications You must be signed in to change notification settings

damienfa/jours-feries-france

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jours Fériés, jours ouvrés, ouvrables, en France et ses régions

Cette bibliothéque PHP propose des méthodes simples pour :

  • retrouver l'ensemble des Jours FĂ©riĂ©s Français đŸ‡«đŸ‡· (mĂȘme ceux spĂ©cifiques Ă  des territoires, tel que l'Alsace-Moselle, ou la France d'Outre-Mer) ;
  • effectuer des calculs de dates en jours ouvrĂ©s, ouvrables, tout en tenant compte des jours fĂ©riĂ©s du territoire spĂ©cifiĂ© ;
  • calculer un "dĂ©lai franc administratif" ;
  • 
 et bien d'autres surprises !

TrĂšs trĂšs (trĂšs) inspirĂ© de https://github.com/etalab/jours-feries-france (mais en PHP, et avec quelques bonus utiles) ⭐

Usage de la classe JoursFeries

// Obtenir les jours fériés pour une année, pour la métropole Française
$Jours = JoursFeries::forYear(2018); 
// $Jours = [
//   'Jour de l’an' => new DateTime('01-01-2018'),
//   'Lundi de PĂąques' => new DateTime('02-04-2018'),
//   'FĂȘte du Travail' => new DateTime('01-05-2018'),
//   'Victoire de 1945' => new DateTime('08-05-2018'),
//   'Ascension' => new DateTime('10-05-2018'),
//   'Lundi de PentecĂŽte' => new DateTime('21-05-2018'),
//   'FĂȘte Nationale' => new DateTime('14-07-2018'),
//   'Assomption' => new DateTime('15-08-2018'),
//   'Toussaint' => new DateTime('01-11-2018'),
//   'Armistice' => new DateTime('11-11-2018'),
//   'Jour de Noël' => new DateTime('25-12-2018'),
// ]

// Méthode spécifique pour obtenir certains jours fériés (en DateTime) :
echo JoursFeries::lundiPaques(2018); // => new DateTime('02-04-2018')
echo JoursFeries::ascension(2018); // new DateTime('10-05-2018')
echo JoursFeries::lundiPentecote(2018); // new DateTime('21-05-2018')

// Obtenir les jours fériés pour une zone spécifique
$Jours = JoursFeries::forYear(2018, "Alsace-Moselle");

# Quelques fonctions pratiques :
JoursFeries::isFerie(new DateTime("25-12-2019"), "MĂ©tropole"); // => True
JoursFeries::getNextFerie(new DateTime("24-12-2019"),"MĂ©tropole"); // => new DateTime("25-12-2019")

Usage de la classe JoursAdministratifs (calculs de délais)

// Obtenir la date correspondante Ă  10 jours calendaires Ă  partir d'aujourd'hui
JoursAdministratifs::addJourCalendaire(new DateTime(), 10);
// Obtenir la date correspondante Ă  10 jours ouvrables Ă  partir d'aujourd'hui
JoursAdministratifs::addJourOuvrable(new DateTime(), 10);
// Obtenir la date correspondante à 8 jours ouvrés à partir d'aujourd'hui
JoursAdministratifs::addJourOuvre(new DateTime(), 8);

// Obtenir la date correspondante d'il y a 10 jours ouvrés à partir d'aujourd'hui  (dans le passé donc)
JoursAdministratifs::subJourOuvre(new DateTime(), 10);

// Obtenir la date correspondante Ă  10 jours ouvrables aprĂšs le 20/12/2017, en Alsasce-Moselle
JoursAdministratifs::addJourOuvrable(new DateTime('20-12-2017'), 10, 'Alsace-Moselle');

// Obtenir un délais franc, c'est à dire 10 jours calendaires à partir du 14/12/2020, 
// mais si le dernier jour n'est pas ouvré, alors on renverra le prochain jour ouvré
JoursAdministratifs::addJourFranc(new DateTime('14-12-2020'), 10);

TO DO AND KNOWN ISSUES

  • Ajouter un fichier .gitlab-ci.yml et automatiser les tests dans gitlab-ci

  • La mĂ©thode JoursAdministratifs::subJourFranc() n'existe pas. Pourquoi ? Car la fin de dĂ©lais correspond au prochain jour ouvrĂ©, de ce fait, le calcul de la date d'origine va rester flou / alĂ©atoire si plusieurs jours non-ouvrĂ©s se suivent en fin de dĂ©lais ! Si je cherche la date correspondante au dĂ©but d'un dĂ©lais franc de 10 jours, se terminant le 31 DĂ©c. 2020, un lundi donc, dont les jours prĂ©cĂ©dents sont respectivement un dimanche, un samedi et un vendredi de NoĂ«l. La date de dĂ©but du dĂ©lais est imprĂ©cise et dĂ©licate Ă  calculer car elle peut correspondre au 15 DĂ©c., au 16 DĂ©c, au 17 DĂ©c ou encore au 18 DĂ©c. ! Un solution serait de demander le dĂ©lais "max" ou le dĂ©lais "min". Voyons si un jour cette mĂ©thode est nĂ©cessaire.

About

This lightweight PHP library provides simple methods to find all French public holidays đŸ‡«đŸ‡· (even those specific to territories, such as from Alsace-Moselle, or from France d'Outre-Mer) ; calculate dates in working days, "dĂ©lai franc" etc.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages