#include //判断闰年还是平年 int isleapyear(int year){ if(year%400==0&&year%4==0&&year%100!=0) return 0;//闰年 else return 1;//平年 } //表示指定日期对应的星期几,蔡乐公式 int getDayOfweek(int year,int month,int day){ if(month<3){ year--; month+=12;} int k = year % 100; int j = year / 100; int h = (j/ 4 - 2 * j + k + k / 4 + 13 * (month + 1) / 5 + day - 1); h= h % 7; if (h < 0) h += 7; return h; } //单列输出 //表示输出指定年的日历 void sureyearcarlender(int year,int isdoubleline){ int monthday[]={31,31,28+isleapyear(year),31,30,31,30,31,30,31,30,31,30}; printf("这是%d年的日历\n",year); for(int month=1;month<=12;month++){ printf("\n%d月\n",month); printf(" 日 一 二 三 四 五 六\n"); //判断月的1号是周几 int empty,dateweek=getDayOfweek(year,month,1); //1号以前的空格输出 for(empty=0;empty