Voila ce que ca donne apres l´avoir paufiner
:
( en revenche je sais pas si il est completement debogger :/ mais disons que c´est deja pas mal )
- include <stdio.h>
- include <stdlib.h>
- include <iostream>
- include <string.h>
long calculeDate( long j, long m, long a);
using namespace std;
int main(int argc, char *argv[])
{
long nombreDeJours=0 , j , m , a;
cout<<"Ce programme permet de :\n -saisir une date \n -de calculer le nombre de jours ecoulés depuis le 1er janvier a cette date.\n";
cout<<"veuillez entrer le jour de la date que vous voulez calculer : ";
cout<<endl;
cin>>j;
while ((j<0) || (j>31))
{
cout<<"Le jour saisi n´est pas valide veuillez tape une nouvelle valeur\n";
cin>>j;
}
cout<<"veuillez entrer le mois de la date que vous voulez calculer : ";
cout<<endl;
cin>>m;
while ((j>29) && (m == 2))
{
cout<<" le mois de fevrier ne peux avoir plus de 29 jours, veuillez entrer une nouvelle valeur du mois\n";
cin>>m;
}
while ((m<0) || (m>12))
{
cout<<"Le mois saisi n´est pas valide veuillez tape une nouvelle valeur\n";
cin>>j;
}
cout<<"veuillez entrer l annee de la date que vous voulez calculer : ";
cout<<endl;
cin>>a;
while ((a % 400 != 0) && (a % 4 != 0) && (m==2) && (j==29))
{
cout<<"L annee saisi n´est pas valide veuillez tape une nouvelle valeur\n";
cin>>a;
}
nombreDeJours = calculeDate(j, m, a);
cout <<"A la date : "<< j <<"/"<< m <<"/"<< a<< " s´est ecouler "<< nombreDeJours <<" jours depuis le 1er janvier\n";
system("PAUSE");
return 0;
}
long calculeDate( long j, long m, long a)
{
long nombreDeJours;
nombreDeJours=j;
switch (m)
{
case 2 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +31; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +31; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +31; }
else { nombreDeJours=nombreDeJours +31; }
break;
case 3 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +60; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +59; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +60; }
else { nombreDeJours=nombreDeJours +59; }
break;
case 4 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +91; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +90; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +91; }
else { nombreDeJours=nombreDeJours +90; }
break;
case 5 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +121; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +120; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +121; }
else { nombreDeJours=nombreDeJours +120; }
break;
case 6 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +152; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +151; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +152; }
else { nombreDeJours=nombreDeJours +151; }
break;
case 7 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +182; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +181; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +182; }
else { nombreDeJours=nombreDeJours +181; }
break;
case 8 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +213; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +212; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +213; }
else { nombreDeJours=nombreDeJours +212; }
break;
case 9 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +244; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +243; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +244; }
else { nombreDeJours=nombreDeJours +243; }
break;
case 10 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +274; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +273; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +274; }
else { nombreDeJours=nombreDeJours +273; }
break;
case 11 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +305; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +304; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +305; }
else { nombreDeJours=nombreDeJours +304; }
break;
case 12 : if (a % 400 == 0) { nombreDeJours=nombreDeJours +335; }
else if (a % 100 == 0) { nombreDeJours=nombreDeJours +334; }
else if (a % 4 == 0) { nombreDeJours=nombreDeJours +335; }
else { nombreDeJours=nombreDeJours +334; }
break;
}
return nombreDeJours;
}