Bonjour à tous,
Voila, j'ai récupérer une fonction sur le net qui permet de calculer le nombre de jours ouvrés entre deux dates données. Mais il y a un petit probleme pour le mois d'aout. En effet, pour le mois d'aout de cette année, il y a 22 jours ouvré (car il y a 4 Week end donc 8 jours plus le 15/08) ce qui fait 31-9=22. Mais la fonction que j'utilise me retourne 23. Je vois pas trop ce qui ne marche pas. C'est le seul mois qui ne fonctionne pas. Voici la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
$date_debutCP = '01/08/2006' ;
$date_finCP = '31/08/2006' ;
 
function NbJours($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);
 
}
 
 
  $tDeb = explode("/", $date_debutCP);
  $tFin = explode("/", $date_finCP);
 
  $timestampEnd = mktime(0, 0, 0, $tFin[1], $tFin[0], $tFin[2]);
  $timestampStart = mktime(0, 0, 0, $tDeb[1], $tDeb[0], $tDeb[2]);
 
 
// 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;
    $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)
            }
 
            if($jour_semaine == 1||$jour_semaine == 2||$jour_semaine == 3||$jour_semaine == 4||$jour_semaine == 5)
            {
         // 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++; // 8 mai
        if($jour == 14 && $mois == 07) $nbFerie2++; // 14 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
            }
 
            $jour++;
            $timestampStart=mktime(0,0,0,$mois,$jour,$annee);
            $nbJour = ($timestampEnd - $timestampStart / (60*60*24));
         // Incrémentation du nombre de jour ( on avance dans la boucle)
    }
     return $nbFerie+$nbFerie2;
}//Fin de la fonction
Si quelq'un a une idée, qu'il me fasse signe. Merci