Intervalle entre 2 dates sans les week end

Résolu
r.mahery Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
r.mahery Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


Je suis actuellement en train de faire un logiciel de gestion de congés avec html et PHP.
Mon problème est que je dois calculer le ombre de jours entre 2 dates (jusque la c'est bon) mais j'aimerai que les weekends, et certain jour ne soient pas pris en compte.

Je galère à fond... Comment faire?
A voir également:

1 réponse

maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
Bonjour,

Pourrais- tu expliquer un peu plus comment tu veux procéder pour enregistrer des congés

par exemple : 10 jours de congés à partir d'une date (et donc il ne faut pas compter le week-end)

autre exemple date de début et date de fin ... (le nombre de congés sera la différence - les jours des week end)

à quoi ressemble ta table en base de données

et que fera-tu de ces infos ? (si il y a des traitement particuliers à faire dessus.

Toutes ces infos permettront de t'orienter vers la solution la plus adéquate
0
r.mahery Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
J'enregistre les donnée dans une base sous cette forme:

Numéro de congés | Numéro de l'employé | DateDébut | DateFin | Nombre de Jours | Validation

Exemple: Du 01-01-2012 au 28-02-2012 ça me donne 59 jours

Chaque employé dispose d'un certain nombre de jours de congés, donc grâce à un trigger je mettrai à jour ce nombre.
0
maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
<?php 
  
 $date_debut = '01/01/2012'; 
 $date_fin = '28/02/2012'; 
 list($dd,$md,$yd) = explode('/',$date_debut); 
 list($df,$mf,$yf) = explode('/',$date_fin); 
  
 $timstamp_debut = mktime(0,0,0,$md,$dd,$yd); 
 $timstamp_fin = mktime(0,0,0,$mf,$df,$yf); 
  
 $conges = 0; 
 $jours = 0; 
 // 86400 -> nombre de seconde par jour 
 for($i = $timstamp_debut; $i <= $timstamp_fin; $i+= 86400){ 
  if(in_array(date('w', $i) , array(1,2,3,4,5))){ 
   $conges++; 
  } 
  $jours++; 
 } 
 echo $conges.' sur '.$jours; 

?>


test ce bout de code
0
r.mahery Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
Ce code fonctionne correctement, il ne prend pas en compte les weekends. Il faut vraiment que j'apprenne la gestion des dates sur PHP. Je vais essayer de comprendre ce code ^^. Reste encore la prise en compte des jours fériés --'.
Je te remercie pour ton aide. ;)
0