文章

171

粉丝

0

获赞

710

访问

27.2k

头像
日期差值 题解:

#include<iostream>
using namespace std;

int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int check(int x)
{
	if(x%4==0&&x%100!=0||x%400==0)
		return 1;
	return 0;
}

int get_days(int time1,int time2)
{
	int res1=0,res2=0,year1,month1,day1,year2,month2,day2;
	year1=time1/10000;
	month1=time1%10000/100;
	day1=time1%100;
	year2=time2/10000;
	month2=time2%10000/100;
	day2=time2%100;
	for(int i=1;i<year1;i++)
		res1+=365+check(i);
	for(int i=1;i<month1;i++)
	{
		res1+=days[i];
		if(i==2&&check(year1))
			res1++;
	}
	res1+=day1;
	for(int i=1;i<year2;i++)
		res2+=365+check(i);
	for(int i=1;i<month2;i++)
	{
		res2+=days[i];
		if(i==2&&check(year2))
			res2++;
	}
	res2+=day2;
	return abs(res1-res2)+1;
}

int main()
{
	int time1,time2;
	cin>>time1>>time2;
	cout<<get_days(time1,time2);
    
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发