[問題] 字串轉時間

看板C_and_CPP (C/C++)作者 (vegetable)時間11年前 (2015/05/12 17:20), 編輯推噓3(3011)
留言14則, 7人參與, 最新討論串1/1
開發平台(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

05/12 17:32, , 1F
long long int?
05/12 17:32, 1F

05/12 17:39, , 2F
沒辦法..
05/12 17:39, 2F

05/12 17:40, , 3F
沒有函式就自己寫阿 C語言給你那麼多字串函數夠用了
05/12 17:40, 3F

05/12 17:41, , 4F
還是你是用"sring.h"所以找不到函數 那沒辦法 完蛋了
05/12 17:41, 4F

05/12 17:55, , 5F
我的作法 , 抽出 year,month,day,hour,min,secs, 塞進
05/12 17:55, 5F

05/12 17:56, , 6F
先把字串轉成時間單位,加2分鐘,再轉回字串就好了
05/12 17:56, 6F

05/12 17:57, , 7F
時間是指time_t, FILETIME, std::chrono::system_clock::tim
05/12 17:57, 7F

05/12 17:58, , 8F
e_point, 或boost的也有兩種, 這些都是可以直接加duration的
05/12 17:58, 8F

05/12 17:58, , 9F
struct tm, mktime 轉 time_t x , x+=120 , 要再轉給人看
05/12 17:58, 9F

05/12 17:58, , 10F
的話用 localtime ..
05/12 17:58, 10F

05/12 18:00, , 11F
你會用sscanf嗎
05/12 18:00, 11F

05/12 19:14, , 12F
strptime() => tm_min+=2 => mktime() => strftime()
05/12 19:14, 12F

05/12 19:25, , 13F
mktime()/timelocal()/timegm() 可以處理日期時間進位問題.
05/12 19:25, 13F

05/12 19:28, , 14F
而且可以都只看 struct tm, 不用管 time_t 的部分.
05/12 19:28, 14F
文章代碼(AID): #1LKSN56y (C_and_CPP)
文章代碼(AID): #1LKSN56y (C_and_CPP)