1928: 日期差值
[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB 解决 : 2553 提交 : 11187
题目描述
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
输入
有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
输出
每组数据输出一行,即日期差值
样例输入 Copy
代码语言:javascript复制20130101
20130105
样例输出 Copy
代码语言:javascript复制5
code
代码语言:javascript复制#include<iostream>
#include<vector>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>
#include<cstdlib>
#include<cstdio>
using namespace std;
bool judge(int year)
{
if ((year@0==0)||((year%4==0)&&(year0!=0)))
{
return true;
}
else
return false;
}
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 main()
{
int a=0,b=0;
int y1,y2,m1,m2,d1,d2;
while(scanf("%d%d",&a,&b)!=EOF)
{
//scanf("%d",&b);
if (a>b)
{
int temp=a;
a=b;
b=temp;
}
y1=a/10000;
m1=(a000)/100;
d1=a0;
y2=b/10000;
m2=(b000)/100;
d2=b0;
int ans=1;
//cout<<y1<<y2<<m1<<m2<<endl;cout<<d1<<d2<<endl;
//下面一部分比较机智
//!((y1==y1)&&(m1==m2)&&(d1==d2))
while(y1<y2||m1<m2||d1<d2)
{
d1 ;
if (d1==month[m1][judge(y1)] 1)
{
m1 ;
d1=1;
}
if (m1==13)
{
m1=1;
y1 ;
}
ans ;
}
cout<<ans<<endl;
}
return 0;
}