/** * @copyright 2011 Chunhui Wang * * wangchunhui@wangchunhui.cn */ #include<stdio.h> int main() { printf(" 万年历 "); printf(" ------Made by Chunhui Wang "); int i,year, month; int day;//记录每月第一天是周几。 int date;//每年星期变化,平年加1,闰年加2。 int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//月份天数 。 int Year[10000];//每年第一天周几。 Year[1900]=1; for(i=1900;i<9999;i++) { date=1; if((i%4==0)&&(i%100!=0)||(i%400==0)) { date=2; } Year[i+1]=(Year[i]+date)%7; } while(1) { printf("请输入年份(如1900):"); scanf("%d",&year); printf("请输入月份(如 01):"); scanf("%d",&month); a[2]=28; if(((year%4==0)&&(year%100!=0)||(year%400==0))&&(month>=2)) { a[2]=29; } day=Year[year]; for(i=1;i<month;i++) { day=day+a[i]; } day=day%7; printf(" %d年%d月份 ",year,month); printf(" 星期一 星期二 星期三 星期四 星期五 星期六 星期日 "); for(i=0;i<day;i++) { printf(" "); } if(day==0)printf(" "); for(i=0;i<a[month];i++) { printf("%d ",i+1); if((i+day)%7==0) { printf(" "); } } printf(" "); } return 0; }