#include<iostream>
using namespace std;
//求日期差值
//两个变量存储日期,先输入的日期要小于或等于后输入的日期
//如何来处理闰年闰月的日期不同的问题
//肯定要判断是否为闰年,然后就是闰年怎样处理
//每个月的天数不一样怎么处理
//其实可以用if但是比较麻烦,直接用数组比较方便
//数组的一维坐标代表月份,二维坐标用0和1表示是否是闰年
int month[13][2]= {{0,0},{31,31}, {28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31} };
bool isleap(int year){
return (year%4==0&&year%100!=0||year%400==0);
}
int main(){
int time1,y1,m1,d1;
int time2,y2,m2,d2;
while(scanf("%d%d",&time1,&time2)!=EOF){
if(time1>time2){
int temp=time1;
time1=time2;
time2=temp;
}
y1=time1/10000;
y2=time2/10000;
m1=time1%10000/100;
m2=time2%10000/100;
d1=time1%100;
d2=time2%100;
int ans=1;//记录天数的,因为规定相邻两天差2
while(y1<y2||m1<m2||d1<d2){
d1++ ;
//这是一个循环一直到time1=time2的时候结束
if(d1==month[m1][isleap(y1)]+1){//这里的+1很重要,我总爱忘记
//月份最后一天是可以有的但是32天是不存在的
m1++;
d1=1;
}
if(m1==13){
y1++;
m1=1;
}
ans++;
}
printf("%d\n",ans);
}
return 0;}
自己的易错点的总结:这个if()后面的条件如果是判断相等的话总爱给==丢掉