Problemes avec la date de fin de mois

Sadek -  
 jls -
J'ai un petit probleme a resoudre:

je voudrai resoudre a faire un programme a resoudre

les penalites qu'il faux payer un etudiants pour les mensualite qu'il faux payer pour l'ecole chaque mois


il a le droit de payer avant le 11 de chaque mois

mais si la 11(mois)<Date<21(Mois) la penalite sera 10%de mensualidad

si 21(mois)<Date<fin du mois la penalite sera 15%

si si date>fin de mois (c'est a dire le mois suivant) la penalite sera 20%



J?ai reussi a resoudre la premiere mais j'ai pas pu resoudre la second et la derniere c'est a dire je pas pu resoudre comment je peux prendre en consideration les mois qui termine parfois par 31;30;29 et 28



si qlq un peut m'aider a resoudre ca s'il vous plait sera tres gentil de sa part

j'attend vos reponses
merci
A voir également:

2 réponses

rotengle Messages postés 1 Statut Membre
 
C'est simple. Je connais nécessairement le mois suivant et si je ne connais pas le dernier jour du mois qui m'intéresse, je sais que le mois suivant commence le 1. Donc je considére le la date du premier jour du mois suivant et à cette date j'enlève un jour, j'obtiens le dernier jour du mois en question. Prévoir une gestion particulière du mois de décembre et le tour est joué. Pour reprendre l'exemple, le dernier jour du mois est Date(01/(Mois + 1)/AAAA) - 1 si le mois est différent de 12 sinon le 31/12/AAAA. Tous les logiciels de programmation savent faire des opérations sur les dates.
0
jls
 
slt

si j'ai bien compris un étudiant doit payer sa mensualité scolaire chaque mois au plus tard le 11.

si il paye entre le 12 et le 21 du mois en cours c'est + 10 % de pénalité.

si il paye entre le 22 et la fin du mois en cours c'est + 15% de pénalité

et si il paye avec 1 mois de retard et plus, c'est 20 %.


Je te propose d'extraire la date systeme à chaque encaissement.
et de distinguer le N° du jour et le N° du mois.
et de déclarer des variables de type entier :
mensualite, MoisMax ;

// MoisMax = Numero du mois de payement max autorisé


Tu peux resoudre le probleme simplement.

Si NumeroJour < 11
ET Si le NumeroMois == MoisMax
(pas de probleme.)

Si le NumeroJour > 11
ET Si le NumeroMois == MoisMax
Mensualite = Mensualité + 10%

Si le NumeroJour > 11 et < 21
ET Si le NumeroMois == MoisMax
Mensualite = Mensualité + 15%

Si le NumeroMois > MoisMax
Mensualite = Mensualité + 20% (// alors là ca fait mal !!)

ex : si ton etudiant doit payer en fevrier (mois N° 2) et que la date systeme te donne Mois N° 3 ton étudiant est donc en retard d'un mois et tu te moques à ce moment là de savoir si le mois à 28 , 30 ou 31 jours !
c'est + 20 % !.

Voila
et il ya certainement plus simple encore !

avec ça tu vas pouvoir faire un beau petit algorithme
et quelques simples lignes de code le tour sera joué.

bon courage

jean-luc stefanini
0