如果是2月29日出生,输出-1并退出程序,考虑第一年是否为闰年且生日是否在2月29之前,最后一年如果为闰年生日在二月之后进行天数加1,中间16年为闰年直接加1
#include <iostream>
#include<stdlib.h>
using namespace std;
int main()
{
int year, mon, day;
int day2 = 0;
cin >> year >> mon >> day;
int year2 = year + 18;
if (mon == 2 && day == 29)
{
cout << -1 << endl;
exit(0);
}
if ((year % 4 == 0 && year % 100 != 0 || year % 400 == 0) && mon <= 2)
{
day2++;
}
for (year + 1; year <= year2-1; year++)
{
if ((year % 4 == 0 && year % 100 != 0 || year % 400 == 0))
{
day2 += 1;
}
}
if ((year2 % 4 == 0 && year2 % 100 != 0 || year2 % 400 == 0) && (mon > 2))
{
day2++;
}
cout << 6570 + day2 << endl;
return 0;
}