获取当前UnixTime的零点时间戳


 

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

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

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

 

我们的第一个想法是将上次开屏时间和当前时间归一到 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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM