3640:月份计算

时间限制:2 S   /  内存限制:65536 KB
AC:7   /  Submit:36
问题描述

给定两个日期,按照以下规则计算这两个日期之间历经了多少个月(含开始结束时间)。

1)满足月初开始,月末结束的,算作整月。

例如 1.1~1.31 是一个月,2.1~3.31 是两个月。


2)满足月初开始,非月末结束的,最后一个月按照规则【5】计算,其它月按整月计算。

例如 3.1~4.15,其中 3.1~3.31 算作一个月,4.1~4.15 算 15/30 个月,合计 1.5 月。


3)满足非月初开始,月末结束的,第一个月按照规则【5】计算,其它月按整月计算。

例如 6.21~8.31,其中 7.1~8.31 算作两个月,6.21~6.30 算 10/30 个月,合计 2.33 月。


4)满足 x 日开始,x - 1 日结束的,算作整月。

例如 1.10~2.9 是一个月,2.20~4.19 是两个月。


5)其它情况,均按照每天占当月的比例进行求和。

例如一月的 1 天算作【31分之1】月,四月的 1 天算作【30分之1】月。

输入描述

第一行是一个正整数 T 表示测试案例的数量。(1 ≤ T ≤ 10000)

每组案例包含两个日期,这些日期不会早于 2000 年,也不会超过 3000 年。

不保证输入的顺序,请以较早的日期作为开始时间。

日期输入格式参考样例。

输出描述

符合规则【1】【4】的,输出一个整数表示历经的月;

否则输出一个浮点数表示历经的月(保留 5 位小数)。

每组案例输出结束之后都要换行。

样例输入复制样例

3

2023.1.1 2023.1.1

2023.1.1 2023.2.28

2023.3.1 2023.4.15

样例输出

0.03226

2

1.50000

提示说明

若开始结束日期同时满足多条规则,按给定的顺序优先参考。

相关

TKK寒假赛Round#12


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1