Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2407 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  difference de date

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

difference de date

n°1148223
maire106
Posté le 12-07-2005 à 17:28:56  profilanswer
 

voila mon soucis:
j'ai 2 dates et je voudrais savoir le nombre de jours ouvrés les separant,
j'ai trouve une fonction qui me dit si c'ets un jour ferié et je l'ai adapté  
mais ca ne fonctionne pas , j'ai toujours des jours ferié!!!!!
en gros je ne travaille plus!!!! ;)  
 
voila la fonction qui donne les jour feries:
 

Code :
  1. function jour_ferie($date){
  2. // Donner un timestamp unix en paramètre
  3. // Retourne si jour_férié ou week-end
  4.       $jour = date("d", $date);
  5.       $mois = date("m", $date);
  6.       $annee = date("Y", $date);
  7.       if($jour == 1 && $mois == 1) return 0; // 1er janvier
  8.       if($jour == 1 && $mois == 5) return 0; // 1er mai
  9.       if($jour == 8 && $mois == 5) return 0; // 5 mai
  10.       if($jour == 14 && $mois == 7) return 0; // 14 juillet
  11.       if($jour == 15 && $mois == 8) return 0; // 15 aout
  12.       if($jour == 1 && $mois == 11) return 0; // 1 novembre
  13.       if($jour == 11 && $mois == 11) return 0; // 11 novembre
  14.       if($jour == 25 && $mois == 12) return 0; // 25 décembre
  15.       $date_paques = easter_date($annee);
  16.       $jour_paques = date("d", $date_paques);
  17.       $mois_paques = date("m", $date_paques);
  18.       if($jour_paques == $jour && $mois_paques == $mois) return 0; // Pâques
  19.       $date_ascension = mktime(date("H", $date_paques),
  20.                                date("i", $date_paques),
  21.                                date("s", $date_paques),
  22.                                date("m", $date_paques),
  23.                                date("d", $date_paques) + 38,
  24.                                date("Y", $date_paques)
  25.                               );
  26.       $jour_ascension = date("d", $date_ascension);
  27.       $mois_ascension = date("m", $date_ascension);
  28.       if($jour_ascension == $jour && $mois_ascension == $mois) return 0; // Ascension
  29.       $date_pentecote = mktime(date("H", $date_ascension),
  30.                                date("i", $date_ascension),
  31.                                date("s", $date_ascension),
  32.                                date("m", $date_ascension),
  33.                                date("d", $date_ascension) + 11,
  34.                                date("Y", $date_ascension)
  35.                               );
  36.       $jour_pentecote = date("d", $date_pentecote);
  37.       $mois_pentecote = date("m", $date_pentecote);
  38.       if($jour_pentecote == $jour && $mois_pentecote == $mois) return 0; // Pentecote
  39.       $jour_julien = unixtojd($date);
  40.       $jour_semaine = jddayofweek($jour_julien, 0);
  41.       if($jour_semaine == 0 || $jour_semaine == 6) return 0; // Jour de la semaine (0 pour dimanche et 6 pour samedi)
  42. }


et voila la boucle pour comparer jour apres jour:

Code :
  1. //calcul du nombre de jour
  2. $Date1 = mktime( 0, 0, 0, $Mois1, $Jour1, $Annee1 );
  3. $Date2 = mktime( 0, 0, 0, $Mois2, $Jour2, $Annee2 );
  4. $nbJour = floor(($Date2 - $Date1) / (60*60*24));
  5. $totjour = $nbJour;
  6. for ($i=0;$i<$nbJour;$i++){
  7. if (jour_ferie($Date1)==0){
  8.  $totjour= $totjour-1;
  9. }
  10. $Date1+= 86400;
  11. }


le pb et qu'il rentre tjs dans la boucle if
donc au final j'ai toujours 0 jours
ou est mon erreur?
ou avez vous une autre solution plus simple?

mood
Publicité
Posté le 12-07-2005 à 17:28:56  profilanswer
 

n°1148224
sielfried
Posté le 12-07-2005 à 17:31:26  profilanswer
 

Avec que des "return 0", ta fonction risque pas de retourner autre chose que 0.  [:mlc]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1148227
sielfried
Posté le 12-07-2005 à 17:33:13  profilanswer
 

Doit manquer un return 1 tout à la fin.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1148762
maire106
Posté le 13-07-2005 à 11:02:50  profilanswer
 

yes ca marche , merci! je l'avais meme pas vu


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  difference de date

 

Sujets relatifs
Forcer Format Champ Date/Heure[C#] trouver le début de semaine par rapport à une date
Date NaissancePb de date Access/MySql
probleme de date access/postgresqlproblème de filtre avec date et combobox
[CVS] diff d'une branche depuis une certaine datedate nulle !
[php] filtrage de date fichier[Access] Différence entre deux date format DD/MM/YYYY
Plus de sujets relatifs à : difference de date


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR