看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 餵入的資料(Input): 一堆時間sring ex20130102010203 2013年01月02號01點02分03秒 預期的正確結果(Expected Output): 把時間做運算ex全部+2分鐘 輸出 20130102010403 錯誤結果(Wrong Output): 連long int都沒辦法放下這麼大的數字 sring.h中沒有可以把前面20130102去掉的函式 程式碼(Code):(請善用置底文網頁, 記得排版) 想不到甚麼邏輯可以寫 補充說明(Supplement): 請問有甚麼方法可以達到這個目標嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.118.127.111 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1431422405.A.1BC.html
aiwhat: long long int? 05/12 17:32
xucin: 沒辦法.. 05/12 17:39
MOONRAKER: 沒有函式就自己寫阿 C語言給你那麼多字串函數夠用了 05/12 17:40
MOONRAKER: 還是你是用"sring.h"所以找不到函數 那沒辦法 完蛋了 05/12 17:41
EdisonX: 我的作法 , 抽出 year,month,day,hour,min,secs, 塞進 05/12 17:55
kwpn: 先把字串轉成時間單位,加2分鐘,再轉回字串就好了 05/12 17:56
kwpn: 時間是指time_t, FILETIME, std::chrono::system_clock::tim 05/12 17:57
kwpn: e_point, 或boost的也有兩種, 這些都是可以直接加duration的 05/12 17:58
EdisonX: struct tm, mktime 轉 time_t x , x+=120 , 要再轉給人看 05/12 17:58
EdisonX: 的話用 localtime .. 05/12 17:58
shadow0326: 你會用sscanf嗎 05/12 18:00
yvb: strptime() => tm_min+=2 => mktime() => strftime() 05/12 19:14
yvb: mktime()/timelocal()/timegm() 可以處理日期時間進位問題. 05/12 19:25
yvb: 而且可以都只看 struct tm, 不用管 time_t 的部分. 05/12 19:28