码迷,mamicode.com
首页 > 编程语言 > 详细

C/C++中计算两个时间相差的天数

时间:2014-08-02 18:22:23      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:c   c++   time   

在系统中经常用到time()函数获取系统时间,也就是通常所说的日历时间,这个时间是从1970年1月1日0时开始到现在的秒数。
问:已有日历时间t1和t2(假设t1>t2),如何计算他们之间相差的天数。
答:
          day = (t1+time_zone*60*60)/time_of_day - (t2+time_zone*60*60)/time_of_day
     其中time_zone表示时区间隔,比如说北京时间相比于标准时间就需要加8小时,可以参考下图。time_of_day为一天的秒数,等于24*60*60=86400.

                                        1970年1月1日0时
                                                     |<-----------------------t2--------------------------->| 
                                                     |<------------------------------------t1------------------------------>|
格林威治时间轴:                           |-------------------------------------------------------------------------------->
本地时间轴:       |------------------------------------------------------------------------------------------------------>
                           |<--time_zone-->|


陷阱一:
          day = (t1-t2)/time_of_day
     如果t2的小时时间超过了t1的小时时间,会出现计算的天数比实际的天数多1。
陷阱二:
          day = t1/time_of_day - t2/time_of_day
     这样计算的天数差将是标准时间相差的天数。

 附:
1. C、C++时间与日期函数,介绍各种时间的表达方式之间的转换,特别是文章刚开始的转换图,看的一目了然。
2. C++ time,各种时间名称的详细解释,并特别提示了常用的时间函数共享一块静态存储区的问题。

C/C++中计算两个时间相差的天数,布布扣,bubuko.com

C/C++中计算两个时间相差的天数

标签:c   c++   time   

原文地址:http://blog.csdn.net/jiaolongdy/article/details/38350043

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!