Post by jeremie foucheBonjour
Je recherche un script qui calcul le nombre de jours ouvrés dans un
mois, ie : du lundi au vendredi.
avec date('t', $date) et date('w', $date) j'ai pas mal d'infos, mais a
part incrémenter sur le jour jusqu'au dernier, je ne vois pas trop
l'algo simple, en une passe a mettre en place.
Si vous avez des idées, je suis preneur
Merci
Bonsoir,
Ca ne répond pas totalement à la question, mais au cas où ça puisse
servir... Pour un problème un peu similaire (calcul d'une prévision de
chiffre d'affaires mensuel en fonction du chiffre d'affaires des jours
passés), j'ai écrit ceci, qui fonctionne assez bien.
Cordialement,
$Annee = date('Y');
// Construit un tableau contenant les jours fériés de l'année en cours
$PaquesDim = easter_date($Annee);
$PaquesLun = date('Y-m-d', ($PaquesDim + 24*3600));
$PentecoteLun = date('Y-m-d', ($PaquesDim + 50*24*3600));
$AscensionJeu = date('Y-m-d', ($PaquesDim + 39*24*3600));
$JoursFeries = array("$An-01-01", "$An-05-01", "$An-05-08", "$An-07-14",
"$An-08-15", "$An-11-01", "$An-11-11", "$An-12-25", "$PaquesLun",
"$AscensionJeu", "$PentecoteLun");
// Calcul du nombre de jours ouvrés
$NbJours = date('t');
$Mois = date('m');
$Jour = date('d');
$Maintenant = mktime(0,0,0, $Mois, $Jour, $Annee);
$JoursTravaillesPasses = 0;
$JoursTravaillesFuturs = 0;
for($i=1; $i<=$NbJours; $i++) {
$DateJour = mktime(0, 0, 0, $Mois, $i, $Annee);
$JourSemaine = date('D', $DateJour);
if(!in_array($DateJour, $JoursFeries) && $JourSemaine != 'Sun' &&
$JourSemaine != 'Sat' ) {
if($DateJour <= $Maintenant) {
$JoursTravaillesPasses++;
} else {
$JoursTravaillesFuturs++;
}
}
}
$JoursTravaillesMois = $JoursTravaillesPasses + $JoursTravaillesFuturs;