C++检测两个日期是否是五天以内的函数

写大作业的时候需要,就自己写了一个。没什么技术含量,只不过是很麻烦,也可能有更好的办法,不过这个比较容易看懂

bool five_days(int year,int month,int day,int y,int m,int d){
	int temp;
	if(day>5&&day<26&&month==m){
		temp=day-d;
		if(fabs(double(temp))<5)
			return true;
	}
	if(day<5)
		if(month==2||month==4||month==6||month==8||month==9||month==11)
			if((month-1==m&&((31-d)+(day-1)<5))||((d-day<=5)&&month==m)) return true;
	if(day<5)
		if(month==5||month==7||month==10)
			if((month-1==m&&((30-d)+(day-1)<5))||((d-day<=5)&&month==m)) return true;
	if(day>25)
		if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
			if((((day-d)<=5)&&(month==m))||((31-day)+(d-1)<5)&&(month==m-1)) return true;
	if(day>25)
		if(month==4||month==6||month==9||month==11)
			if(((day-d)<5)&&(month==m)||(((30-day)+(d-1)<5)&&(month==m-1)))
				return true;
	if(day<5&&month==3)
		if(d-day<5&&month==m) 
			return true;
		else
			if(year%400==0||(year%400!=0&&year%4==0)){
				if(((29-d)+(day-1)<5)&&(month==m+1))
					return true;
			}
			else
				if(((28-d)+(day-1)<5)&&(month==m+1))
					return true;
	if(day>25&&month==1)
		if(day-d<5&&month==m) 
			return true;
		else
			if(year%400==0||(year%400!=0&&year%4==0)){
				if(((29-day)+(d-1)<5)&&(month==m-1))
					return true;
			}
			else
				if(((28-day)+(d-1)<5)&&(month==m-1))
					return true;
	if(month==12&&day>25)
		if(day-d<=5&&month==m)
			return true;
		else
			if(((d-1)+(31-day))<5&&(month==1))
				return true;
	if(month==1&&day<5)
		if(d-day<=5&&month==m)
			return true;
		else
			if(((day-1)+(31-d))<5&&(month==12))
				return true;
	return false;
}

bool five_day(int year,int month,int day,int y,int m,int d);
第一个日期 year,month,day
第二个日期y,m,d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值