//C90
/* 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;
}
Aucun commentaire:
Publier un commentaire