C++ 抓取時間在把時間轉換成秒數

2014-07-11 5:54 pm
請問我現在用的是C++語言,從控制器抓到一個時間,格式為 49:50:14 分別代表時、分、秒,有什麼辦法可以把他轉換成秒數嗎?
就像是抓49(小時)出來之後乘上3600再抓50乘上60,然後在把最後的三個數值相加起來這樣
更新1:

對我抓出來是CHAR沒錯,可是我不知道怎麼樣分別把數字寫進去字串中..

更新2:

打錯了,是不知道怎麼把字串中的數字分別寫到陣列中

更新3:

TO戰神派大星 對,49:50:14分別代表時 分 秒,可是我現在必須都轉為秒才有辦法進行下一個計算

更新4:

不好意思 因為我是在寫UI,讀取出來的時間不是上面打的 49:50:14而是會一秒一秒增加的

更新5:

抓到的時間我是放在字元陣列中

回答 (6)

2014-07-11 8:47 pm
✔ 最佳答案
#include <stdio.h>
#include <stdlib.h>

long str2sec (char *stime)
{
char *p;
long sec = strtol (stime, & p, 10);
while (*p)
sec = sec * 60 + strtol (++p, & p, 10);
return sec;
}

int main()
{
char str[] ="49:50:14";
printf("%s => %d secs\n", str, str2sec(str));
system("pause");
return 0;
}


2014-07-11 16:37:32 補充:
>>抓到的時間我是放在字元陣列中

以拙答的自訂函式為例:

char *mytime;
long sec;

讓 mytime = 你所謂的字元陣列起始位址 ;
然後簡單的 sec = str2sec(mytime) ;
便可輕易的把你這個字串秒數計算至 sec 。
2015-01-23 3:20 am
看看他的解答
http://ts777.cc
2014-12-19 2:27 am
這裡有 詳盡說明
TS777。CC
2014-11-06 7:13 am
運彩●現場●對戰●彩球●電子 -->投注站
TS777.CC
2014-07-11 6:57 pm
我看不太懂你的意思,是要把字串"49:50:14"轉換為秒嗎?
2014-07-11 6:13 pm
計算部分只是普通算數,可以不談,重點一談是你如何抓取時間,你抓到的是甚麼格式,是字串嗎﹖ 如"49:50:14"就必定是字串,不可能是數字。你可用陣列輸入字串,將頭一個︰前的字串表示為時,另一︰前的字串表示為分,結尾前字串表示為秒,然後用字串轉成數字就可計算。


收錄日期: 2021-04-27 21:13:35
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20140711000010KK04395

檢視 Wayback Machine 備份