- Javascript : Calcul des jours fériés - CodeS SourceS
- Visual Basic / VB.NET : Dll de calculs des jours fériés et jours ouvrables - CodeS Sou
- PHP : Fonction de calcul de jours fériés - CodeS SourceS
- ColdFusion : Calcul des jours fériés (france) - CodeS SourceS
- C# / .NET : Calcul dates & jours fériés - CodeS SourceS
14 mai 2012 à 16:22
étrange.
31 déc. 2006 à 21:25
// ---> added by mir : 2006.12.31
//ECRIT PAR NANOGROM_OM
//MODIFIE PAR AYTAC GUNTAC
//LE 21/07/2006
function mir__elapsed_days($date_debutCP, $date_finCP)
{
$tDeb = explode("/", $date_debutCP);
$tFin = explode("/", $date_finCP);
$diff = mktime(0, 0, 0, $tFin[1], $tFin[0], $tFin[2]) -
mktime(0, 0, 0, $tDeb[1], $tDeb[0], $tDeb[2]);
return(($diff / 86400)+1);
}
// 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 mir__holidays($date_debutCP, $date_finCP,$valeur_retour)
{
$tDeb = explode("/", $date_debutCP);
$tFin = explode("/", $date_finCP);
$timestampStart = mktime(0, 0, 0, $tDeb[1], $tDeb[0], $tDeb[2]);
$timestampEnd = mktime(0, 0, 0, $tFin[1], $tFin[0], $tFin[2]);
// Initialisation de la date de début
$nbFerie = 0;
$nbFerie2 = 0;
while ($timestampStart <= $timestampEnd)
{
// 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)
}
else
{
$jour = date("d", $timestampStart);
$mois = date("m", $timestampStart);
$annee = date("Y", $timestampStart);
// Définition des dates fériées fixes
if($jour 01 && $mois 01) $nbFerie2++; // 1er janvier
if($jour 01 && $mois 05) $nbFerie2++; // 1er mai
if($jour 08 && $mois 05) $nbFerie2++; // 5 mai
if($jour 21 && $mois 07) $nbFerie2++; // 21 juillet
if($jour 15 && $mois 08) $nbFerie2++; // 15 aout
if($jour 01 && $mois 11) $nbFerie2++; // 1 novembre
if($jour 11 && $mois 11) $nbFerie2++; // 11 novembre
if($jour 25 && $mois 12) $nbFerie2++; // 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) $nbFerie2++;
// Pâques
// Calcul du Lundi de Pâques (1er jour après Pâques)
$date_paques = $date_paques + 86400;
$jour_paques = date("d", $date_paques);
$mois_paques = date("m", $date_paques);
if($jour_paques $jour && $mois_paques $mois) $nbFerie2++;
// Pâques
// Calcul du jour de l'Ascension (39ème jour après Pâques)
$date_ascension = $date_paques + (39 * 86400);
$jour_ascension = date("d", $date_ascension);
$mois_ascension = date("m", $date_ascension);
if($jour_ascension $jour && $mois_ascension $mois) $nbFerie2++;
// Ascension
// Calcul du jour de la Pentecôte (49ème jour après Pâques)
$date_pentecote = $date_paques + (49 * 86400);
$jour_pentecote = date("d", $date_pentecote);
$mois_pentecote = date("m", $date_pentecote);
if($jour_pentecote $jour && $mois_pentecote $mois) $nbFerie2++;
// Pentecote
// Calcul du Lundi de la Pentecôte (1er jour après Pentecôte)
$date_pentecote = $date_pentecote + (86400);
$jour_pentecote = date("d", $date_pentecote);
$mois_pentecote = date("m", $date_pentecote);
if($jour_pentecote $jour && $mois_pentecote $mois) $nbFerie2++;
// Lundi de la Pentecôte
}
$timestampStart=$timestampStart+86400;
}
switch ($valeur_retour)
{
case '1':
{
return $nbFerie;
break;
}
case '2':
{
return $nbFerie2;
break;
}
default:
{
return $nbFerie+$nbFerie2;
break;
}
}
}//Fin de la fonction
27 juil. 2006 à 15:19
$jour_paques = date("d", $date_paques)+1;
Voila sinon j'ai un souci avec, c'est que pour le mois d'aout 2006, il me retourne 23 jours ouvrés alors qu'il devrait y avoir 22. Bizarre...
25 juil. 2006 à 11:58
$date_debutCP = '30/01/2006' ;
$date_finCP = '08/10/2006' ;
problème avec NBjour; le rajout d'un petit round dans le return de la fonction n'arrangerait pas la chose ?
Ouvert : 180
NBjour : 251.95833333333
NBferié : 72
* déjà on ne dit pas 'ouvert', mais 'ouvré'
* c'aurait été mieux de séparer les jours fériés, et les samedis et dimanches, non ?
voilà pour les qq petites remarques (constructives ? je ne sais pas)
cdt
kiki
25 juil. 2006 à 10:52
je te conseille un truc du genre
$jourAscension=date("d",$date_ascension);
$datePaques=explode("-",date("n-d", mktime(0, 0, 0, $moisAscension, $jourAscension+11, date("Y"))));
jour=" . $datePaques[1]
je dis ca mais je n'ai pas testé ton code mais je suppose que si tu l'as mis en ligne, c'est que ça doit marcher.