有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
输入包含多组测试数据。
每组数据占两行,分别表示两个日期,形式为 YYYYMMDD。
每组数据输出一行,即日期差值。
年份范围 [1,9999],
保证输入日期合法。
测试数据的组数不超过 100。
- 20110412
- 20110422
11
- #include
-
- 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;
- }