獲取當前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