/*---------------------------------------------------------------*/
|
/*
|
Titre : Quel sont les jours fériés en France
|
|
URL : https://phpsources.net/code_s.php?id=641
|
Auteur : developpeurweb
|
Website auteur : http://rodic.fr
|
Date édition : 02 Mai 2011
|
Date mise a jour : 13 Aout 2019
|
|
Rapport de la maj:
|
- fonctionnement du code vérifié
|
- amélioration du code
|
*/
|
/*---------------------------------------------------------------*/
|
|
function dimanche_paques($annee)
|
{
|
return date("Y-m-d", easter_date($annee));
|
}
|
function vendredi_saint($annee)
|
{
|
$dimanche_paques = dimanche_paques($annee);
|
return date("Y-m-d", strtotime("$dimanche_paques -2 day"));
|
}
|
function lundi_paques($annee)
|
{
|
$dimanche_paques = dimanche_paques($annee);
|
return date("Y-m-d", strtotime("$dimanche_paques +1 day"));
|
}
|
function jeudi_ascension($annee)
|
{
|
$dimanche_paques = dimanche_paques($annee);
|
return date("Y-m-d", strtotime("$dimanche_paques +39 day"));
|
}
|
function lundi_pentecote($annee)
|
{
|
$dimanche_paques = dimanche_paques($annee);
|
return date("Y-m-d", strtotime("$dimanche_paques +50 day"));
|
}
|
|
|
function jours_feries($annee, $alsacemoselle=false)
|
{
|
$jours_feries = array
|
( dimanche_paques($annee)
|
, lundi_paques($annee)
|
, jeudi_ascension($annee)
|
, lundi_pentecote($annee)
|
|
, "$annee-01-01" // Nouvel an
|
, "$annee-05-01" // Fête du travail
|
, "$annee-05-08" // Armistice 1945
|
, "$annee-05-15" // Assomption
|
, "$annee-07-14" // Fête nationale
|
, "$annee-11-11" // Armistice 1918
|
, "$annee-11-01" // Toussaint
|
, "$annee-12-25" // Noà«l
|
);
|
if($alsacemoselle)
|
{
|
$jours_feries[] = "$annee-12-26";
|
$jours_feries[] = vendredi_saint($annee);
|
}
|
sort($jours_feries);
|
return $jours_feries;
|
}
|
function est_ferie($jour, $alsacemoselle=false)
|
{
|
$jour = date("Y-m-d", strtotime($jour));
|
$annee = substr($jour, 0, 4);
|
return in_array($jour, jours_feries($annee, $alsacemoselle));
|
}
|
| ?> |
Invité
19 Avril 2023 à 17:04Merci pour ce code bien utile !
Invité
11 Nov 2020 à 17:45L'assomption c'est le 15/08 et non pas le 15/05 ;-)
Invité
17 Juin 2020 à 16:42Autant pour moi, c'est l'exemple décrit qui est incorrect : en lançant le code, ça fonctionne bien. Merci
Invité
17 Juin 2020 à 16:33Bonjour, Sauf erreur de ma part, le lundi de pentecôte, comme son nom l'indique, est un lundi, et non un dimanche :-) (ici le 31/05/2020). En tout cas, merci pour le code, cela donne au moins la piste de calcul.
Invité
27 Aout 2019 à 15:12Le 15 mai est jour férié ???? :D on se relis avant de lettre en ligne ;)
Invité
29 Déc 2011 à 16:25Merci pour le code.
Par contre, l'assomption est en aout, pas en mai.
Developpeurweb
10 Mai 2011 à 15:54La fonction jour_ferie() n'est pas définie dans le code ci-dessus. Quant à elle, la fonction jours_feries() prend en premier paramètre l'année (le nom de la variable correspondante étant $annee). Elle retourne la liste des jours fériés pour l'année concernée, sous forme d'un array(). Pour savoir si une date donnée est ou non un jour férié, il faut utiliser la fonction est_ferie(), dont le premier paramètre $jour est le jour dont on cherche à déterminer s'il est férié ou non. Les noms de fonctions et de variables sont rarement choisis au hasard.
Invité
10 Mai 2011 à 12:05Bonjour je viens d'utiliser la fonction jour_ferie mais elle ne retourne rien si je lui donne des paramétres avec comme année une année supérieure a 2009 exple :jour_ferie(mktime(0,0,0,05,15,2011) )
Developpeurweb
06 Mai 2011 à 20:11Cool ! Tiens-nous au courant
Seanron
06 Mai 2011 à 14:49Ces deux scripts sont bien utile. Merci pour les releases. Celui de webdeveloppeur pour sortir des dates fériées ( pour un calendrier c'est top )
celui de Koogar pour compter des jours fériés dans un délai donné par exemple. J'enrichirai très prochainement ce script de ma fonction en cours de developpement, optimisée pour timestamp afin d'avoir une précision horaire. Afin de calculer le nombre d'heures de réalisation d'un projet sur des délais en jours ouvrés. A bientot.
KOogar
02 Mai 2011 à 12:36le but de mon intervention etait de montrer l'utilité de la fonction easter-date
le problème de cette fonction est qu'elle n'est pas active sur tous les serveurs, (a ta place j'aurais laisser le bout de code qui la remplacait, ca peut-etre utile pour certains développeurs) dans le cas ou elle n'est pas active, pour l'activer il faut ajouter le module calendar dans les extensions actives
Pour ce qui est de faire un calendrier il est clair que tes fonctions sont parfaites.
Developpeurweb
02 Mai 2011 à 11:48Oui, c'est ce que l'on appelle les fonctions... Maintenant, essaie de comparer la longueur du code entre { }. Sachant que ton code offre beaucoup moins de fonctionnalités. Et l'Alsace ? Et la Moselle ? Maintenant j'avoue que la fonction easter_date() m'a bien aidé, merci pour ça ^^ (code corrigé). Personnellement, j'ai autant besoin de vérifier qu'une date soit fériée ou non que de récupérer la liste des jours fériés d'une année (exemple : génération d'un calendrier).
KOogar
02 Mai 2011 à 11:41heing ? en nbre de ligne jen ai 48 et le tien le double... En générale quelque soit le dév l'interet est de vérifier si une date est férié ou non, apres on peut toujours lister avec une chti routine mais ca n'a pas vraiment d'interet en dév