choklata Posté 8 Mars 2006 Partager Posté 8 Mars 2006 la fonction consiste a calculer le solde comme suit en 2001 la reste du solde congé agent est 5 jours en 2002 la reste du solde congé agent est 10 jours en 2003 la reste du solde congé agent est 26 jours exemple 1 si l'agent demande un congé de 20 jours 2001--> reste 0 jours 2002 ---> reste 0 jours 2003 -->reste 21 jours exemple 2 si l'agent demande un congé de 5 jours 2001--> reste 0 jours 2002 ---> reste 10 jours 2003 -->reste 26 jours on suppose $a=2001 ,$b=2002 , $c= 2003 jer veut connaitre pour $n jours demander que reste congé dans ($a,$b,$c) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Thanat Posté 8 Mars 2006 Partager Posté 8 Mars 2006 Un début de réponse, à toi de traduire en php ... fonction Calcul_Solde(année,n){ Si (solde_année - n < 0) alors n = n - solde_année; solde_année = 0; Calcul_Solde(année+1,n) Sinon solde_année = solde_année - n; n = 0; FinSi } où n est ton nombre de jour année est l'année et solde_année correspond au solde de l'année année Des contrôles sont sûrement à ajouter : n > 0 somme des soldes < n Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 8 Mars 2006 Partager Posté 8 Mars 2006 C'est rigolo comme fonction... et pas vraiment compliqué quand on utilise des array... <?php$solde_conge = array ( 2001=>5, 2002=>10, 2003=>26 );$jours=20;foreach($solde_conge as $key=>$value) { if($jours >= $value) { $jours-=$value; $value=0; } else { $value=$value-$jours; $jours=0; } $solde_conge[$key] = $value; }print_r($solde_conge);?> Ou en fonction: <?phpfunction conges ($a,$b,$c,$d) {$solde_conge = array ( 2001=>$a, 2002=>$b, 2003=>$c );$jours=$d; foreach($solde_conge as $key=>$value) { if($jours >= $value) { $jours-=$value; $value=0; } else { $value=$value-$jours; $jours=0; } $solde_conge[$key] = $value; } return($solde_conge);}$jours=conges(5,10,26,20);print_r($jours);?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
NorSeb Posté 8 Mars 2006 Partager Posté 8 Mars 2006 Bonjour, Soit $T_conges[annee] le tableau des congés par année. $demande le nombre de jours demandés. $reste_demande = $demande;$annee_de_depart = 2001; // ARBITRAIRE$annee_en_cours = $annee_de_depart;while ($reste_demande > 0) { // Si il y en a plus (ou autant) que la demande if ($T_conges[$annee_en_cours] >= $reste_demande) { $T_conges[$annee_en_cours] -= $reste_demande; } // Sinon on "vide" l'année en cours else { $reste_demande -= $T_conges[$annee_en_cours]; $T_conges[$annee_en_cours] = 0; } // Passer à l'année suivante $annee_en_cours ++;} Lien vers le commentaire Partager sur d’autres sites More sharing options...
choklata Posté 9 Mars 2006 Auteur Partager Posté 9 Mars 2006 super ! je sais que je suis dans le meilleur forum dans le monde Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant