1

je suis en train de mettre en place un système d'organisation de projets (en immobilier et financement)... je refais un peu la roue en mettant en place un système de diagrammes de Gant... voici la classe que je rédige actuellement... elle est autonome, faites un copier/coller du code et testez, ça pourrait être intéressant à ce stade du dev.
Cette classe permet de retourner la différence entre 2 dates, de lister les semaines (ISO) et mois ainsi que le nombre de jours de projet à l'intérieur... je suis pas super clair là ?
Bon, regardez et dites-moi si ça vous botte :
<?php      $debut="30-3-2005";      $fin="1-4-2006";            echo "Du $debut au $fin</p>";      $gant=new Gant;      $diff=$gant->Difference($debut,$fin);      echo "<p />";      while (list ($key, $value) = each ($diff['ListeMois'])) {           echo "Mois ".$key." : ".$value." jours<br />";      }      echo "<p />";      while (list ($key, $value) = each ($diff['ListeSemaines'])) {           echo "Semaine ".$key." : ".$value." jours<br />";      }      class Gant {           function Difference($debut,$fin) {                if($this->FaisDate($fin)>=$this->FaisDate($debut)) {                     $fini=false;                     $i=0;                     $ListeJours=array();                     $ListeMois=array();                     $ListeMois[date("n",$this->FaisDate($debut))."-".date("Y",$this->FaisDate($debut))]=0;                     $ListeSemaines=array();                     $ListeSemaines[date("W",$this->FaisDate($debut))."-".date("Y",$this->FaisDate($debut))]=0;                     while($fini==false) {                          $ListeJours[]=$this->AffDate($this->FaisDate($debut,$i));                          if(isset($ListeMois[date("n",$this->FaisDate($debut,$i))."-".date("Y",$this->FaisDate($debut,$i))])) {                               $ListeMois[date("n",$this->FaisDate($debut,$i))."-".date("Y",$this->FaisDate($debut,$i))]++;                          } else {                               $ListeMois[date("n",$this->FaisDate($debut,$i))."-".date("Y",$this->FaisDate($debut,$i))]=1;                          }                          if(isset($ListeSemaines[date("W",$this->FaisDate($debut,$i))."-".date("Y",$this->FaisDate($debut,$i))])) {                               $ListeSemaines[date("W",$this->FaisDate($debut,$i))."-".date("Y",$this->FaisDate($debut,$i))]++;                          } else {                               $ListeSemaines[date("W",$this->FaisDate($debut,$i))."-".date("Y",$this->FaisDate($debut,$i))]=1;                          }                                                    if($this->FaisDate($fin)==$this->FaisDate($debut,$i)) { $fini=true; }                          $i++;                     }                }                $retour['NBJours']=$i;                $retour['ListeJours']=$ListeJours;                $retour['ListeMois']=$ListeMois;                $retour['ListeSemaines']=$ListeSemaines;                return $retour;           }           function FaisDate($date,$plus_n_jour=0) {                $tabdate=explode("-",$date);                $temps['jour']=$tabdate[0];                $temps['mois']=$tabdate[1];                $temps['annee']=$tabdate[2];                $retour=mktime(6,1,1,$temps['mois'],$temps['jour']+$plus_n_jour,$temps['annee']);                return $retour;           }           function AffDate($date) {                $jour=date("d",$date);                $mois=date("m",$date);                $annee=date("Y",$date);                return $jour."-".$mois."-".$annee;           }      } ?>
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

2

Je suis a la recherche d'un logiciel pour créer un beau diagramme de Gant... vous zauriez bien ca sous la main non?
Merci bien
Salutations guyanaises

3

Si tu veux y mettre le prix, tu as OPL Studio avec qui tu pourras le faire tongue