結(jié)果說(shuō)明
[root@VM_174_171_CentOS unixtime]# g++ -g -o unixtime_simplify unixtime_simplify.cpp
[root@VM_174_171_centos unixtime]# ./unixtime_simplify
Today zero time ==> 1445097600
Week begin time ==> 1444579200
Week end time ==> 1445183999
Is in same day ==> (currtime|one_hour_after = 1), (currtime|one_day_after = 0)
Is in same week ==> (currtime|one_week_after = 0), (one_day_after|one_week_after = 1)
[root@VM_174_171_centos unixtime]# date
Sun Oct 18 13:17:37 CST 2015
[root@VM_174_171_centos unixtime]# date -d @1445097600
Sun Oct 18 00:00:00 CST 2015
[root@VM_174_171_centos unixtime]# date -d @1444579200
Mon Oct 12 00:00:00 CST 2015
[root@VM_174_171_centos unixtime]# date -d @1445183999
Sun Oct 18 23:59:59 CST 2015
在一些活動(dòng)、任務(wù)邏輯中,常常會(huì)需要一個(gè)類似自然日內(nèi)統(tǒng)計(jì)的數(shù)值,過(guò)了一天則數(shù)值清零。
對(duì)于這種需求,我們通常是以 [數(shù)值,更新時(shí)間] 來(lái)表示,在訪問(wèn)時(shí)刻進(jìn)行時(shí)間比較,超過(guò)時(shí)效則清零。以按自然日清零規(guī)則來(lái)舉例,即是在GetValue(), AddValue()時(shí),判斷數(shù)值的上次更新時(shí)間t_upd, 如果IsInSameDay(t_upd, t_now)則當(dāng)前數(shù)值依然有效,否則清零數(shù)值后再進(jìn)行相關(guān)操作。每次修改數(shù)值時(shí)都將t_upd更新成當(dāng)前時(shí)刻。
對(duì)于不同時(shí)區(qū),公式的區(qū)別僅僅在于T1的取值,公式的形式和使用并不需要變化。
一種方式是將T1定義成宏,在國(guó)際化時(shí)對(duì)不同時(shí)區(qū)的版本,使用不同的T1數(shù)值。
另一種方式是將T1定義成全局變量,并在server啟動(dòng)時(shí)使用系統(tǒng)的localtime()函數(shù),將T1按當(dāng)?shù)貢r(shí)區(qū)進(jìn)行合適的初始化取值。
由于每年的天數(shù)、每個(gè)月的天數(shù)不是固定不變的,所以本文的計(jì)算思路不適用于每月幾號(hào)這樣的時(shí)間點(diǎn)的判斷,基于以往的經(jīng)驗(yàn),特定月份特定日期的功能需求并不是很普遍,對(duì)于這些功能還是使用localtime()函數(shù)來(lái)的方便一些。
2015職稱計(jì)算機(jī)考試書PowerPoint2007中 .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書籍 | |
2015年全國(guó)職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 |