我这里有核心代码(全部代码早就不知道丢那了又懒得写,大部分功能都在这里了
/* 计算当前年份1月1日星期几?*/
y_days=0; /* 从2000年1月1日算起到当年1月1日前经历的天数*/
for(i=2000;i<year;i++)
if (i%4==0 && i%100!=0 || i%400==0) y_days=y_days+366; /* 闰年366天 */
else y_days=y_days+365; /* 平年365 天 */
weekday=(weekday+y_days)%7; /* 当年1月1日,星期几?*/
for (month =1;month<=12;month++) /* 逐月打印日历 */
{ printf ("\n\n\t %d-%d\n\n",year,month);
printf (" MON TUES WEDN THUR FRI SAT SUN \n\n");
/* 给出当月的天数 */
switch (month)
{case 1: case 3: case 5: case 7: case 8: case 10:
case 12: days=31;break;
case 4: case 6: case 9: case 11: days=30; break;
case 2: if (year%4==0 && year%100!=0 || year%400==0) days=29;
else days=28;
}
for(i=1;i<weekday;i++) printf(" "); /* 每个月第1周的前导空格 */
for(i=1;i<=days;i++,weekday++)
{ printf("%5d",i);
if (weekday%7==0)
{ putchar('\n');
weekday=weekday%7;} /* weekday=1—7 */
}
printf("\n");
getch();
}
getch();
}