码迷,mamicode.com
首页 > 其他好文 > 详细

获取当前UnixTime的零点时间戳

时间:2017-12-09 16:54:17      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:大于   cal   oca   想法   全局   www.   获取   article   unix   

 

最近有个需求,开屏广告每天只出一次。

思路为如果出了开屏广告,则记录当前时间,下次来的时候,读取当前时间和上一次出开屏的时间。

算一下是不是在同一天即可。

 

我们的第一个想法是将上次开屏时间和当前时间归一到 0 点进行比较(其实有写个更简单的方法)。

所以我们需要获取某一个时间戳 当天的 0点。

可以采用 localtime_r 的方式,如 这篇文章 C/C++代码获取今天凌晨零点零时零分的时间戳,但之前的blog中也写了,这个函数的实现有个全局锁,会影响效率。

所以想通过一些简单的计算来得到0点。

找到的公式为:NowTime - (NowTime + 8 * 3600) % 86400 

NowTime % 86400是0时区当天的秒数,那+8时区应该是NowTime % 86400 + 8 * 3600,由于这个数字可能大于86400,所以用(NowTime % 86400 + 8 * 3600) % 86400

等价于(NowTime + 8 * 3600) % 86400

 

获取当前UnixTime的零点时间戳

标签:大于   cal   oca   想法   全局   www.   获取   article   unix   

原文地址:http://www.cnblogs.com/westfly/p/8011627.html

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