#include <stdio.h>

int get_weekday(int year, int month, int day) { if (month == 1 || month == 2) { month += 12; year--; } int c = year / 100; year %= 100; int week = year + year / 4 + c / 4 - 2 * c + 26 * (month + 1) / 10 + day - 1; week = (week % 7 + 7) % 7; return week; }

void Calendar(int year, int month) { printf(' Mo Tu We Th Fr Sa Su\n');

int days[] = {31,28,31,30,31,30,31,31,30,31,30,31};
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    days[1] = 29;
}

int weekday = get_weekday(year, month, 1);

for (int i = 0; i < weekday; i++) {
    printf('   ');
}

for (int i = 1; i <= days[month-1]; i++) {
    printf('%2d', i);
    weekday = (weekday + 1) % 7;
    if (weekday == 0) {
        printf('\n');
    } else {
        printf(' ');
    }
}

if (weekday != 0) {
    printf('\n');
}

}

int main() { int year, month; scanf('%d %d', &year, &month); Calendar(year, month); return 0; }


原文地址: https://www.cveoy.top/t/topic/m3SB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录