imposer | Bonjour j'ai fait un petit calendrier en C++ mais j'essaie d'éliminer les variables générales pour des questions pratiques. Lorsque je le fais, mon calendrier foire. Quelqu'un pourrait me dire ce qu'il faut changer après avoir éliminé ces variables? Merci infiniment.
Code :
- #include <iostream>
- using namespace std;
- int dayOfWeek(int day,int month,int year); // référencie une date précise à un jour de la semaine
- int daysInMonth(int month,int year); // détermine le nombre de jours dans le mois
- bool isLeapYear(int year); // détermine si l'année est bissextile ou non
- void printUnderscore (); // fonction interligne
- void printDay(int numberday); // imprime le numéro du jour
- void printCalendar(int month,int year); // imprime le calendrier
- int day,month,year; // j'essaie d'enlever ces variables mais lorsque je le fais, mon calendrier décale les jours (j'ai déclaré pour int main les month et year et pour printDay les day,month,year
- int main()
- {
- month=0,year=0;
- do
- {
- cout<<"Entrer un mois et une annee (MM AAAA):"<<endl;
- cin>>month>>year;
- }
- while((month<1)|(month>12));
- cout<<endl;
- printCalendar(month,year);
- system("PAUSE" ); //nécessaire pour le programme dev-c++
- return 0;
- }
- int dayOfWeek(int day,int month,int year)
- {
- int rankofmonth,yearincentury,yearby100,waitmonth=month,waityear=year;
- if((month==1)|(month==2))
- {
- waitmonth+=12;
- waityear-=1;
- }
- rankofmonth=(((waitmonth+1)*26)/10);
- yearincentury=(waityear%100);
- yearby100=waityear/100;
- return ((day+rankofmonth+yearincentury+(yearincentury/4)+(yearby100/4)+(5*yearby100))%7);
- }
- bool isLeapYear(int year)
- {
- bool leapyear;
- if ((year%400)==0)
- {
- leapyear=true;
- }
- else if (((year%4)==0)&((year%100)!=0))
- {
- leapyear=true;
- }
- else
- {
- leapyear=false;
- }
- return leapyear;
- }
- int daysInMonth(int month,int year)
- {
- int numberday;
- bool leap;
- leap=isLeapYear(year);
- if((leap==true)&(month==2))
- numberday=29;
- else if(month==2)
- numberday=28;
- else if ((month==4)|(month==6)|(month==9)|(month==11))
- numberday=30;
- else numberday=31;
- return numberday;
- }
- void printUnderscore()
- {
- cout<<"_________________________________"<<endl<<endl;
- }
- void printDay(int numberday)
- {
- int beginday,j=0,i=1;
- beginday=(dayOfWeek(day=1,month,year));
- beginday=((beginday+5)%7);
- while(j<beginday)
- {
- cout<<" ";
- ++j;
- }
- while(i<=numberday)
- {
- if((j%7)==0)
- cout<<endl;
- if(i<10)
- cout<<"0"<<i<<" ";
- else cout<<i<<" ";
- ++i;
- ++j;
- }
- }
- void printCalendar(int month,int year)
- {
- printUnderscore();
- if(month==1)
- cout<<"Janvier "<<year<<endl;
- else if(month==2)
- cout<<"Fevrier "<<year<<endl;
- else if(month==3)
- cout<<"Mars "<<year<<endl;
- else if(month==4)
- cout<<"Avril "<<year<<endl;
- else if(month==5)
- cout<<"Mai "<<year<<endl;
- else if(month==6)
- cout<<"Juin "<<year<<endl;
- else if(month==7)
- cout<<"Juillet "<<year<<endl;
- else if(month==8)
- cout<<"Aout "<<year<<endl;
- else if(month==9)
- cout<<"Septembre "<<year<<endl;
- else if(month==10)
- cout<<"Octobre "<<year<<endl;
- else if(month==11)
- cout<<"Novembre "<<year<<endl;
- else if(month==12)
- cout<<"Decembre "<<year<<endl;
- cout<<endl;
- printUnderscore();
- cout<<"Lun Mar Mer Jeu Ven Sam Dim"<<endl<<endl;
- daysInMonth(month,year);
- printDay(daysInMonth(month,year));
- cout<<endl<<endl;
- printUnderscore();
- }
|
Message édité par imposer le 21-03-2008 à 08:04:28
|