思想
我的思想是计算公元1月1日到第一个日期的年份,再计算到第二个日期的年份,两个值一减得到的差值就是两个日期之间的年份,但是题目给定的样例是包含了后一个日期的一年的,所以我们还要加上365+is_leap(m)
#include<bits/stdc++.h>
using namespace std;
int is_leap(int year)
{
if(year%4==0&&year%100||year%400==0) //四年一闰 百年不闰 四百年再润
return 1;
return 0;
}
int get_total_day(int y) //从公元1日1日到给定日期之间的天数
{
int res=0;
for(int i=0;i<y;i++)res+=365+is_leap(i);
return res;
}
int main()
{
int n,m;cin>>n>>m;
cout<< abs(get_total_day(m)-get_total_day(n))+365+is_leap(m)<<endl;
return 0;
}