Cette fonction renvoie le nombre de jours fériés de samedis et de dimanches entre 2 dates
Source / Exemple :
<?
// SERVANT AU CALCUL DES JOURS OUVRABLES
// Fonction retournant le nombre de jour fériés samedis et
// dimanches entre 2 dates entrées en timestamp
function jour_ferie($timestampStart, $timestampEnd)
{
// Initialisation de la date de début
$jour = date("d", $timestampStart);
$mois = date("m", $timestampStart);
$annee = date("Y", $timestampStart);
$nbFerie = 0;
while ($timestampStart != $timestampEnd)
{
// Définition des dates fériées fixes
if($jour == 1 && $mois == 1) $nbFerie++; // 1er janvier
if($jour == 1 && $mois == 5) $nbFerie++; // 1er mai
if($jour == 8 && $mois == 5) $nbFerie++; // 5 mai
if($jour == 14 && $mois == 7) $nbFerie++; // 14 juillet
if($jour == 15 && $mois == 8) $nbFerie++; // 15 aout
if($jour == 1 && $mois == 11) $nbFerie++; // 1 novembre
if($jour == 11 && $mois == 11) $nbFerie++; // 11 novembre
if($jour == 25 && $mois == 12) $nbFerie++; // 25 décembre
// Calcul du jour de pâques
$date_paques = easter_date($annee);
$jour_paques = date("d", $date_paques);
$mois_paques = date("m", $date_paques);
if($jour_paques == $jour && $mois_paques == $mois) $nbFerie++;
// Pâques
// Calcul du jour de l ascension (38 jours après Paques)
$date_ascension = mktime(date("H", $date_paques),
date("i", $date_paques),
date("s", $date_paques),
date("m", $date_paques),
date("d", $date_paques) + 38,
date("Y", $date_paques)
);
$jour_ascension = date("d", $date_ascension);
$mois_ascension = date("m", $date_ascension);
if($jour_ascension == $jour && $mois_ascension == $mois) $nbFerie++;
//Ascension
// Calcul de Pentecôte (11 jours après Paques)
$date_pentecote = mktime(date("H", $date_ascension),
date("i", $date_ascension),
date("s", $date_ascension),
date("m", $date_ascension),
date("d", $date_ascension) + 11,
date("Y", $date_ascension)
);
$jour_pentecote = date("d", $date_pentecote);
$mois_pentecote = date("m", $date_pentecote);
if($jour_pentecote == $jour && $mois_pentecote == $mois) $nbFerie++;
//Pentecote
// Calul des samedis et dimanches
$jour_julien = unixtojd($timestampStart);
$jour_semaine = jddayofweek($jour_julien, 0);
if($jour_semaine == 0 || $jour_semaine == 6) $nbFerie++;
//Samedi (6) et dimanche (0)
// Incrémentation du nombre de jour ( on avance dans la boucle)
$jour++;
$timestampStart=mktime(0,0,0,$mois,$jour,$annee);
}
return $nbFerie;
}//Fin de la fonction
?>
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.