39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
|
|
#include <bits/stdc++.h>
|
||
|
|
using namespace std;
|
||
|
|
|
||
|
|
// 判断是不是闰年
|
||
|
|
bool isRun(int year) {
|
||
|
|
return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
|
||
|
|
}
|
||
|
|
// 获取每个月的天数
|
||
|
|
int getDays(int year, int month) {
|
||
|
|
int days[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
||
|
|
return days[month] + (month == 2 && isRun(year));
|
||
|
|
}
|
||
|
|
// 获取星期几
|
||
|
|
int getXq(int year, int month, int day) {
|
||
|
|
// 我们知道2024年1月1号是星期一
|
||
|
|
// year>=2024
|
||
|
|
// 计算2024年1月1号到year年month月day日的天数 2025
|
||
|
|
int days = 0;
|
||
|
|
for (int i = 2024; i < year; i++)
|
||
|
|
days += 365 + isRun(i);
|
||
|
|
|
||
|
|
for (int i = 1; i < month; i++)
|
||
|
|
days += getDays(year, i);
|
||
|
|
days += day;
|
||
|
|
return days % 7;
|
||
|
|
}
|
||
|
|
int main() {
|
||
|
|
// 初始化2024年1月1号至2025年12月31号
|
||
|
|
for (int year = 2024; year <= 2025; year++) {
|
||
|
|
for (int month = 1; month <= 12; month++) {
|
||
|
|
int days = getDays(year, month);
|
||
|
|
for (int day = 1; day <= days; day++)
|
||
|
|
cout << year << " " << month << " " << day << " "
|
||
|
|
<< getXq(year, month, day) << endl;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|