#includeint 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("请输入年份:\n"); 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("\n%d年日历如下:\n", y); for (int i = 0; i < 12; i++) { printf(" %d月\n", i+1); printf(" 7 1 2 3 4 5 6\n"); printf("=====================\n"); 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("\n"); } } printf("\n\n"); } return 0;}
运行结果:
版权声明:本文为博主原创文章,未经博主允许不得转载。