有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
输入格式
输入包含多组测试数据。
每组数据占两行,分别表示两个日期,形式为 YYYYMMDD
。
输出格式
每组数据输出一行,即日期差值。
数据范围
年份范围 [1,9999],
保证输入日期合法。
测试数据的组数不超过 100。
输入样例:
20110412
20110422
输出样例:
11
挺不错的日期题目,运用三目运算符作解
以下是AC代码
#include <bits/stdc++.h>
using namespace std;
int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int day(int n)
{
int y = n / 10000;
int m = n % 10000 / 100;
int d = n % 10000 % 100;
a[2] = (y % 4 == 0 && y % 100 != 0 || y % 400 == 0 ? 29 : 28);
while(m --) d += a[m];
while(y --) d += (y % 4 == 0 && y % 100 != 0 || y % 400 == 0 ? 366 : 365);
return d;
}
int main()
{
int a ,b;
while(cin >> a >> b)
cout << abs(day(a) - day(b)) + 1 << endl;
return 0;
}