问题描述 |
---|
给定两个日期,按照以下规则计算这两个日期之间历经了多少个月(含开始结束时间)。 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 |
提示说明 |
若开始结束日期同时满足多条规则,按给定的顺序优先参考。 |
相关 |