日期差值
刷题链接: link.
题目描述
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天
输入描述:
有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
输出描述:
每组数据输出一行,即日期差值
示例1:
输入:
20110412
20110422
输出:
11
我的代码:(注意输入可以直接使用long long类型,且方便比较大小)
#include<cstdio>
int judge(int y)
{
if((y%400==0)||(y%100!=0&y%4==0))
return 1;
return 0;
}
int main()
{
long long a,b;
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};
while(scanf("%lld%lld",&a,&b)!=EOF)
{
if(a<b)
{
long long temp=a;
a=b;
b=temp;
}
int y1=a/10000,m1=a%10000/100,d1=a%100;
int y2=b/10000,m2=b%10000/100,d2=b%100;
int count=1;
while(y1!=y2||m1!=m2||d1!=d2)
{
d2++;
if(d2>month[m2][judge(y2)])
{
d2=1;
m2++;
}
if(m2>12)
{
m2=1;
y2++;
}
count++;
}
printf("%d\n",count);
}
return 0;
}