#include <iostream>
using namespace std;
#include<assert.h>
class Date
{
public:
Date(int year = 1,int month = 1,int day = 1)
:_year(year)
,_month(month)
,_day(day)
{}
inline int GetMonthDay(int year, int month)
{
assert(month > 0 && month < 13);
static int monthDayArray[13] = { -1, 31, 28, 31, 30, 31, 30, 31, 31, 30,31, 30, 31 };
// 365天 5h +
if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 ==0)))
{
return 29;
}
else
{
return monthDayArray[month];
}
}
bool operator>(const Date& d)
{
if(_year >d._year)
{
return true;
}
else if(_year == d._year)
{
if(_month >d._month)
{
return true;
}
else if(_month == d._month)
{
return _day>d._day;
}
return false;
}
else
{
return false;
}
}
bool operator==(const Date& d)
{
return _day == d._day
&& _month == d._month
&& _year == d._year;
}
bool operator!=(const Date& d)
{
return !((*this) == d);
}
Date& operator+=(int day)
{
_day += day;
// =不执行,比如下个月28,则就是x月28天
while(_day>GetMonthDay(_year,_month))
{
_day -= GetMonthDay(_year, _month);
++_month;
if(_month == 13)
{
_month = 1;
++_year;
}
}
return *this;
}
//两个年月日相差多少天
int operator-(const Date& d)
{
Date max = *this;
Date min = d;
if(min>max)
{
max = d;
min = *this;
}
int count = 0;
while(min!=max)
{
min += 1;
count++;
}
return count;
}
private:
int _year;
int _month;
int _day;
};
int main() {
int year1,month1,day1;
// cin>>year1>>month1>>day1; //这个输入过不去
scanf("%4d%2d%2d",&year1,&month1,&day1);
int year2,month2,day2; //这个输入过不去
scanf("%4d%2d%2d",&year2,&month2,&day2);
// cin>>year2>>month2>>day2;
Date d1 = {year1,month1,day1};
Date d2 = {year2,month2,day2};
//有点奇怪,为啥都少一天,在这儿加了个1,就行了
//知道的告诉我原因
cout<< d1-d2+1;
return 0;
}
// 64 位输出请用 printf("%lld")