Admin Admin
Nombre de messages : 138 Age : 38 Date d'inscription : 02/09/2006
| Sujet: Calcul de l'écart entre deux dates Jeu 5 Oct - 14:02 | |
| A partir de deux dates la fonction Diff calcul le nombre de jours qui sépare ces deux dates, en tenant compte des années bissextiles. - Code:
-
/* l'année est-elle bissextile*/ int Bissextile (int A) { return A % 4 == 0 && (A % 100 != 0 || A % 400 == 0); }
/*combien de jours se sont ecoules depuis le debut de l'annee donnee*/ int Nb_Jours (int J, int M, int A) { int i, D = 0; const int Mois[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
if (M == 1) D = J; else { for (i = 0; i < (M-1); i++) D += Mois[i]; D+=J; } if ((M > 2) && (Bissextile(A))) D++; return D; }
/*la fonction diff proprement dite*/ int Diff (int j1, int m1, int a1, int j2, int m2, int a2) { int NJ = 0, NJ1, NJ2, i;
NJ1 = Nb_Jours (j1, m1, a1); NJ2 = Nb_Jours (j2, m2, a2); if (a2 == a1) NJ = NJ2 - NJ1; else { for (i = 0; i < (a2-a1); i++) { NJ += 364; if (Bissextile (a1+i)) NJ++; } NJ -= NJ1; NJ += NJ2+1; } return NJ; }
| |
|