#include <iostream> #include <iomanip> using namespace std; bool runian(int x) { if(x%400==0||x%4==0&&x%100!=0) return true; else return false; } int main() { int x,y,h,i,j=0; cout<<"请输入年份:"; cin>>h; if(h<2000) { for(i=h;i<2000;i++) { if(runian(i)) j++; } j=6-(365*(2000-h)+j)%7; } else if(h>2000) { for(i=2000;i<h;i++) { if(runian(i)) j++; } j=(365*(h-2000)+j)%7+6-7; } else j=6; for(i=1;i<=12;i++) { cout<<i<<"月份"<<endl; cout<<setw(6)<<"sun"<<setw(6)<<"mon"<<setw(6) <<"tues"<<setw(6)<<"wed"<<setw(6)<<"thus"<<setw(6)<<"fri"<<setw(6)<<"sat"<<endl; switch(i) { case 1:case 3:case 5:case 7:case 8:case 10:case 12: y=31; break; case 4:case 6:case 9:case 11: y=30; break; case 2: if(runian(h)) y=29; else y=28; } for(x=1;x<=j;x++) cout<<" "; for(x=1;x<=y;x++) { cout<<setw(6)<<x; if((x+j)%7==0) cout<<endl; if(x==y) j=(x+j)%7; } cout<<endl; } return 0; } 算法不想多说了! 6、已知2000 年1 月1 日为星期六,输入任一年的年份后,打印该年的年历。 啊啊!