U307117 格里高利历
题目背景
我们现行的公历为格里高利历(Gregorian calendar),它是在公元 1582 年由教皇格里高利十三世在原有的儒略历(Julian calendar)的基础上修改得到的。具体而言,现行的公历日期按照以下规则计算:
每年一月
31 天、 二月
28 天或
29 天、三月
31 天、四月
30 天、五月
31 天、六月
30 天、七月
31 天、八月
31 天、九月
30 天、十月
31 天、十一月
30 天、十二月
31 天。其中,闰年的二月为
29 天,平年为
28 天。当年份是
400 的倍数,或日期年份是
4 的倍数但不是
100 的倍数时,该年为闰年。
注意,公元零年并不存在,即公元前 1 年的下一年是公元 1 年
天文学家为了简便计算,大多使用儒略日,但并不贴合普通人的日常生活,你能设计一个程序快速地计算出公历中两个日期之差吗
题目描述
请你设计一个程序,计算格里高利历中两个日期的天数之差,注意,此处的天数之差,指从起始日期的中午十二点,到结束日期的中午十二点经过的天数,即一月一日的一天后指一月二日。
输入格式
第一行一个整数
$Q$,表示询问的组数。
接下来 $Q$ 行,每组询问有两行,第一行三个正整数$year_1$,$month_1$,$day_1$表示初始日期,第二行三个正整数$year_2$,$month_2$,$day_2$表示结束日期,每组数据间用一个空行隔开
输出格式
对于每组数据,输出一行一个正整数表示两个日期之差,数据保证答案不超过$10^9$
说明/提示
数据范围:$Q\le$$10^6$,答案保证不超过$10^9$,所有输入数据均在int32整型范围内
注意:本题I/O量较大,请使用较快速的输入输出方式,实在无法AC,可以尝试使用以下二进制优化快读快写
使用方法:如定义变量$Q$,若要读入$Q$,则
```cpp
int Q = read();
```
若输出$Q$,则
```cpp
write( Q );
```
代码:
```cpp
inline int read()
{
int x = 0, f = 1; char ch = getchar();
for(; ch>57||ch47&&ch