zoukankan      html  css  js  c++  java
  • 获取当前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

  • 相关阅读:
    NFS服务安装
    Redhat 6.3 yum 本地源配置
    在redhat enterprise linux 6中部署samba
    React
    链表
    map, set
    二叉查找树
    数制间的相互转换
    二维数组
    拖拽
  • 原文地址:https://www.cnblogs.com/westfly/p/8011627.html
Copyright © 2011-2022 走看看