#include <bits/stdc++.h>
using namespace std;
int m1[] = {0, 1, 3, 5, 7, 8, 10, 12}; // 存储大月
int m2[] = {0, 4, 6, 9, 11}; // 存储小月
int main()
{
int num = 1; // 2000.1.1是第一天
int year = 2000, month = 1, day = 1;
int year2 = 2000, month2 = 5, day2 = 4;
while(1)
{
num++, day++;
for (int i = 1; i <= 7; ++i) // 判断是否为大月
{
if (month == m1[i] && day == 32) // 大月满足32天进一月
{
month++;
day = 1;
break;
}
}
for (int i = 1; i <= 4; ++i) // 判断是否为小月
{
if(month == m2[i] && day == 31) // 小月满31天进一月
{
month++;
day = 1;
break;
}
}
if (month == 2) // 2月单独判断
{
if ((year % 4 == 0 && year % 100) || year % 400 == 0)
{
if (day == 30) // 闰年满30天进一月
{
month++;
day = 1;
}
}
else
{
if (day == 29) // 平年满29天进一月
{
month++;
day = 1;
}
}
}
if (month == 13) // 满13月进一年
{
month = 1;
year++;
}
if (year == year2 && month == month2 && day == day2) break;
}
cout << num << '\n';
return 0;
}最终答案:125
0 回复
0 转发
1 喜欢
2 阅读



