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