choklata Posté 8 Mars 2006 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)
Thanat Posté 8 Mars 2006 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
Dan Posté 8 Mars 2006 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);?>
NorSeb Posté 8 Mars 2006 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 ++;}
choklata Posté 9 Mars 2006 Auteur Posté 9 Mars 2006 super ! je sais que je suis dans le meilleur forum dans le monde
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant