※ [本文轉錄自 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