题目描述:
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
输入格式
输入包含多组测试数据。
每组数据占两行,分别表示两个日期,形式为 YYYYMMDD
。
输出格式
每组数据输出一行,即日期差值。
数据范围
年份范围 [1,9999],
保证输入日期合法。
测试数据的组数不超过 100。
输入样例:
20110412
20110422
输出样例:
11
解题思路:
输入两个日期,将两个日期全部转换为天,对于闰年且和二月再进行特判。
最后结果是两日期差值绝对值+1
由于是 多组测试数据知道具体组数输入的时候需要while(~scanf());
参考代码:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int days[]{
0,31,28,31,30,31,30,31,31,30,31,30,31
};
int leap(int y)
{
if(y%400==0 || y%4==0 && y % 100) return 1;
return 0;
}
int get_month(int y,int m)
{
if(m==2) return 28+leap(y);