题目描述
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
输入
有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
输出
每组数据输出一行,即日期差值
样例输入
20130101
20130105
样例输出
5
代码
#include<cstdio>
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 date_a,date_b;
while(scanf("%d %d",&date_a,&date_b)!=EOF){
if(date_a>date_b){
int t=date_a;
date_a=date_b,date_b=t;
}
int difference=1;
int year_a=date_a/10000,month_a=date_a%10000/100,day_a=date_a%100;
int year_b=date_b/10000,month_b=date_b%10000/100,day_b=date_b%100;
while(!(year_a==year_b&&month_a==month_b&&day_a==day_b)){
++day_a;
if(day_a==month[month_a][isleap(year_a)]+1){
++month_a;
day_a=1;
}
if(month_a==13){
++year_a;
month_a=1;
}
++difference;
}
printf("%d\n",difference);
}
return 0;
}