#include <stdio.h>
int year(int y)
{
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
return 366;
else
return 365;
}
int main(int argc, const char * argv[])
{
int y;
// 每月多少天
int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("请输入年份:
");
scanf("%d", &y);
int sum = 0;
for (int i = 1; i < y; i++) {
sum += year(i);
}
int week = (sum + 1) % 7; // 1月1日星期几
if (year(y) == 366) {
days[1] = 29;
}
printf("
%d年日历如下:
", y);
for (int i = 0; i < 12; i++) {
printf(" %d月
", i+1);
printf(" 7 1 2 3 4 5 6
");
printf("=====================
");
for (int i = 0; i < week; i++) {
printf(" ");
}
int begin = 1;
while (begin <= days[i]) {
printf(" %02d", begin);
begin++;
week = (week + 1) % 7;
if (week == 0) {
printf("
");
}
}
printf("
");
}
return 0;
}
运行结果:
版权声明:本文为博主原创文章,未经博主允许不得转载。