看板 C_and_CPP 關於我們 聯絡資訊
要計算DST的時間(+1小時) 於是先取現在的時間time_t 再把它+3600秒 Time2印出來發現跟Time1一樣,沒有加3600秒 可是我用另外一個time_t的變數 (clock_dst) 去等於clock,再去印時間(Time3) 發現有加一個小時 很好奇為什麼Time2的時間沒有多一小時 而用另外一個變數去等於時,就有多一個小時了!? 謝謝大家 void test() { time_t clock; time(&clock); /* DST */ DEBUG("Time1: %s", ctime(&clock)); clock = clock + 3600; DEBUG("Time2: %s", ctime(&clock)); time_t clock_dst; clock_dst = clock; DEBUG("Time3(%d): %s", (int)clock_dst, ctime(&clock_dst)); } 結果如下: Time1: Fri Feb 7 19:43:39 2014 Time2: Fri Feb 7 19:43:39 2014 Time3(1391777019): Fri Feb 7 20:43:39 2014 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.17.31
Feis:不確定你在哪個平台. 此外 time_t 在 C 標準是實作相依, 不 02/07 20:22
Feis:一定代表秒數. 不過我跑你的 code 沒問題. 應該有神祕事件? 02/07 20:22
EdisonX:一定要用 clock 這麼尷尬的變數名稱嗎? clock_t clock(); 02/07 23:47
EdisonX:@Feis,我以為time_t 是從 UTC 1970.1.1 經過了多少 "秒", 02/07 23:49
EdisonX:還是我還停留在 C++11 前 @@ 02/07 23:50
littleshan:time() 傳回 seconds since Epoch 是 POSIX 標準 02/08 00:22
EdisonX:原來如此. 02/08 00:27