就是枚举外加对闰年和特殊月份的特判
js
#include<bits/stdc++.h>
using namespace std;
int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool is_leap(int year)
{
if(year%4==0||year%400==0&&year%100!=0)
{
return true;
}
return false;
}
int main()
{
int year=1777,month=5,day=8113;
while(day>30)
{
//判断一下年份是否是闰年,是闰年day-28,否则正常减
if(is_leap(year)&&month==2)
{
day-=29;
}
else day-=months[month]; //如果不是闰年也不是二月份就正常减
month++; //减去一个月的之后月份++
if(month==13) //如果超过12个月份
{
year++; //就过了一年
month=month%12; //余几个月
}
}
cout << year << "-0" << month << '-' << day-1;
return 0;
}