有了这个公式,妈妈再也不用操心我计算日期差了

  一直以来计算两个日期的间隔天数非常让我们头大,比方计算2014/3/231993/3/4之间距离多少天,传统的想法是先推断年份是不是闰年,然后计算差了多少年,再算差了几个月。几天等等。这样的方法尽管能够帮助我们理清当中的逻辑。可是写这样一段程序非常easy出错。并且效率也不是非常高。那么有没有好一点的办法呢?当然有!

  UnixLinux系统中都是从197011号開始计算时间的,以秒为单位。

尽管用秒作单位有点冗余,可是数学上却非常easy。

将日期转化为从基准日期之后过了多少秒,然后再运行操作,这样就消除了随着日历的缩减(比方日期和月份的缩减)带来的诸多问题。

  以基准时间为准将日期转化为自基准时间以来经过的秒数然后再计算就能够非常方便的计算两个日期之间的间隔秒数甚至间隔天数。以下这个公式就能够方便的计算一个日期与基准时间之间的间隔秒数:


(Year* 365) + (Year / 4) -(Year/100)+(Year/400)+(Month*306001/10000)+(Day)

  使用这个公式但是要注意一下几点,运行计算的时候可能要改变月份和年份的值:

 1.对于一月和二月,必须给月份Month上加13,给年份减去1

  2.对于其它月份,仅给月份Month1.



比如计算1970/1/1的算式例如以下:

 (1969*365)+(1969/4)-(1969/100)+(1969/400)+(14*306001/10000)+1.


posted on 2017-06-20 08:23  ljbguanli  阅读(324)  评论(0)    收藏  举报