题目描述:
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。
输入:
有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD
输出:
每组数据输出一行,即日期差值
样例输入:
20130101
20130105
样例输出:
5
一开始想当然将日期当作整型相减,但因为闰年存在否决了,所以想了想加点判断行不行呢?其实也不行,不仅多个判断闰年工作量,而且还不知道两个输入之间有多少个闰年。所以还是要将年份月份日期设成三个变量才行
下面是正确思路:这种日期差值题有个很直接的思路,就是让日期不断加1使两个日期相等。而闰年的特殊性采取定义一个int month[13][2]来解决,数组的二维代表平年和闰年。 剩下的就是简单的模拟计算了。日期满了,月份加1,日期置为1.月份满了,年份加1,月份置为1.
值得一提:我们并不需要真一天天加到日期相等,可以先加年份加到相差为1,期间年份每加一,加365或366天即可。