蓝桥杯 统计天数 知识点:日期型题目 简单一次过

231 阅读1分钟

1.统计天数 - 蓝桥云课 (lanqiao.cn)

思想

我的思想是计算公元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;
}