1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| <?php
function ferie($mois,$an, $alsace = false){
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;
// les jours fixes
$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;
if ($alsace)
$ferie["Lendemain de Noël (Alsace seulement)"][12] = 25;
// 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";
$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'];
if ($alsace)
$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;
}
function tab_jours_feriés($an) {
return ferie(range(1,12),$an);
}
/************ EXECUTION *********************/
$année = date("Y");
$fériées = tab_jours_feriés($année);
echo "<br>";
while (list($mois, $tab) = each ($fériées)) {
while (list($jour, $fete) = each ($tab)) {
echo "$jour/$mois/$année => $fete \n<br>";
}
}
?> |
Partager