回文章列表
作者Dopin.bbs@bbs.bsd.com.tw (系統調校完成) 看板: installbbs
標題<轉錄> Re: src/maple/date_stamp.c (拿到 maple/ 下扛最快 …
時間亞特蘭提斯 (2009/12/16 Wed 23:47:46)
※ [本文轉錄自 ATSVersion 看板]

作者: Dopin (系統調校完成) 看板: ATSVersion
標題: Re: src/maple/date_stamp.c (拿到 maple/ 下扛最快 …
時間: Wed Dec 16 06:32:33 2009
In-Reply-To: 4jPOQe$lG_@bbs.bsd.com.tw

%make date_stamp
gcc -O2 -I../include  date_stamp.c  -o date_stamp
%./date_stamp 1983 02 27
[ 415123200 ]
Sun Feb 27 00:00:00 1983
%./date_stamp 2009 12 16
[ 1260892800 ]
Wed Dec 16 00:00:00 2009
%./date_stamp 2004 2 29
[ 1077984000 ]
Sun Feb 29 00:00:00 2004
%./date_stamp 1970 1 1
[ -28800 ]
Thu Jan  1 00:00:00 1970
%

所以用法簡單易懂 科科 特別注意您所使用的伺服器時間 如果有錯誤
記得要調整時區 或是把那個 - 8 * 3600 給拿掉 才能正確算出數值

最後 因為 signed int (32bits) 的極值問題 這個程式的最高極限日
期數值 是 2147443200 也就是 2038/01/19 超過就會出鎚 :p 真的想
要做點限制避免算錯 在比對日期格式的函式部份再動點手腳就好

最後實際用到應用上 比方要計算 2006/01/13 與 1986/12/07 差了幾
天 只要各自求出 stamp 數值 彼此相減後再除以秒數即可 如果真的只
需要算差幾天就夠了 86400 部份修改掉就好

[本程式範例皆以 32bits 環境為基準]

--
Origin: Atlantis  DN: bbs.bsd.com.tw  IP : 203.70.65.27  ST: atlantis       
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻