calendrier-jours-feries.php
<!-- $Id: script-nexen.php,v 1.4 2002/11/28 19:45:12 didou Exp $ -->
<!-- script-nexen.php,v 1.5 2001/05/30 13:02:01 pierre Exp -->
<!-- $Id: db.inc,v 1.24 2003/09/15 12:34:06 dams Exp $ -->
<!-- db.inc,v 1.238 2001/05/30 15:43:51 pierre Exp -->
<!-- $Id: connectlib.php,v 1.1 2001/11/20 09:04:45 sam Exp $ -->
<?php
/*
*
*
* Avertissement : Cette librairie de fonctions PHP est distribuee avec l'espoir
* qu'elle sera utile, mais elle l'est SANS AUCUNE GARANTIE; sans meme la garantie de
* COMMERCIALISATION ou d'UTILITE POUR UN BUT QUELCONQUE.
* Elle est librement redistribuable tant que la presente licence, ainsi que les credits des
* auteurs respectifs de chaque fonctions sont laisses ensembles.
* En aucun cas, Nexen.net ne pourra etre tenu responsable de quelques consequences que ce soit
* de l'utilisation ou la mesutilisation de ces fonctions PHP.
*/
/****
* Titre : Liste des jours fériés
* Auteur : Damien Seguy
* Email : damien.seguy@nexen.net
* Url : www.nexen.net
* Description : Fait la liste des jours fériés dans un ou plusieurs mois.
Utilise le calendrier Francais.
****/
function ferie($mois,$an){
// pour avoir tous les jours feries de l'annee,
// passez un tableau de mois (ferie(range(1,12), $an);
// pour les avoir sur plusieurs annees
// ferie(range(1,24), $an); ferie(range(36,12), $an);
if (is_array($mois)){
$retour = array();
foreach ($mois as $m) {
$r = ferie($m, $an);
$retour[$m] = ferie($m, $an);
}
return $retour;
}
// calcul des jours feries pour un seul mois.
if (mktime(0,0,0,$mois, 1,$an) == -1) { return FALSE;}
list($mois, $an) = explode("-", date("m-Y", mktime(0,0,0,$mois, 1, $an)));
$an = intval($an);
$mois = intval($mois);
// une constante
$jour = 3600*24;
// quelques fetes mobiles
$lundi_de_paques['mois'] = date( "n", easter_date($an)+1*$jour);
$lundi_de_paques['jour'] = date( "j", easter_date($an)+1*$jour);
$lundi_de_paques['nom'] = "Lundi de Pâques";
$ascencion['mois'] = date( "n", easter_date($an)+39*$jour);
$ascencion['jour'] = date( "j", easter_date($an)+39*$jour);
$ascencion['nom'] = "Jeudi de l'ascenscion";
$vendredi_saint['mois'] = date( "n", easter_date($an)-2*$jour);
$vendredi_saint['jour'] = date( "j", easter_date($an)-2*$jour);
$vendredi_saint['nom'] = "Vendredi Saint";
$lundi_de_pentecote['mois'] = date( "n", easter_date($an)+50*$jour);
$lundi_de_pentecote['jour'] = date( "j", easter_date($an)+50*$jour);
$lundi_de_pentecote['nom'] = "Lundi de Pentecôte";
// France
$ferie["Jour de l'an"][1] = 1;
$ferie["Armistice 39-45 "][5] = 8;
$ferie["Toussaint"][11] = 1;
$ferie["Armistice 14-18"][11] = 11;
$ferie["Assomption"][8] =15;
$ferie["Fête du travail "][5] =1;
$ferie["Fête nationale"][7] =14;
$ferie["Noël"][12] = 25;
$ferie["Lendemain de Noël (Alsace seulement)"][12] = 25;
$ferie[$lundi_de_paques['nom']][$lundi_de_paques['mois']] = $lundi_de_paques['jour'];
$ferie[$lundi_de_pentecote['nom']][$lundi_de_pentecote['mois']] = $lundi_de_pentecote['jour'];
$ferie[$ascencion['nom']][$ascencion['mois']] = $ascencion['jour'];
$ferie[$vendredi_saint['nom']." (Alsace)"][$vendredi_saint['mois']]= $vendredi_saint['jour'];
// reponse
$reponse = array();
while(list($nom, $date)= each($ferie)){
if (isset($date[$mois])){
// une fete a date calculable
$reponse[$date[$mois]]=$nom;
}
}
ksort($reponse);
return $reponse;
}
echo ferie($mois,$an);
?>