题目描述
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
输入
有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
输出
每组数据输出一行,即日期差值
样例输入
20130101
20130105
样例输出
5
#include<cstdio>
int isleap(int Y){
if(((Y%4==0)&&(Y%100!=0))||Y%400==0)return 1;
else return 0;
}
int main(){
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}
};
int time_1,time_2;
while(scanf("%d %d",&time_1,&time_2)!=EOF){
int ans=1;
if(time_1>time_2){
int temp;
temp=time_1;
time_1=time_2;
time_2=temp;
}
int Y_1,Y_2,M_1,M_2,D_1,D_2;
Y_1=time_1/10000;
Y_2=time_2/10000;
M_1=(time_1%10000)/100;
M_2=(time_2%10000)/100;
D_1=(time_1%10000)%100;
D_2=(time_2%10000)%100;
while(!((Y_1==Y_2)&&(M_1==M_2)&&(D_1==D_2))){
D_1++;
ans++;
if(D_1==month[M_1][isleap(Y_1)]+1){
M_1++;
D_1=1;
}
if(M_1==13){
Y_1++;
M_1=1;
}
}
printf("%d\n",ans);
}
return 0;
}