个人博客,最近新建的。
计算两个固定格式日期之间相差的天数。
之前看有人说是让小的日期一点点加到大日期,这样的话如果相差很大的日期,应该会影响效率的。我想的是按照年月日的顺序,从大到小,直接计算出来,
首先计算两个日期年之间相差的天数,分两种情况:如果month1<month2, 则计算之后使得year1=year2; 如果month1>month2,则计算后使得year1=year2-1,差的天数交给接下来的月计算,计算中要考虑到闰年与平年的区分,例如2000/2/1-2001/2/1,需要+366天,而2000/3/1-2001/3/1则需要+365天。
年保持相同后,就计算月份相差的天数。举个例子,计算1/20-3/8,只需要计算(1/20-1/31)+2月份的天数+(3/1-3/8),就是月份相差的总天数(同样需要考虑闰年的二月份是29天)。在上述计算年份时month1>month2 的情况下,需要考虑month1=12时需要进位为1。
年相差的天数+月相差的天数就是两个日期相差的总天数。
代码实现见,承喏的博客-日期计算,拷贝代码能够直接运行。