2012-03-18 126 views
0

我想製作一個程序,其中用戶將輸入他/她的生日,該程序將計算他們已經生活了多少天,幾個月,幾年,幾小時和幾分鐘。如何在C++中分割日期和時間?

我搜索了Google,我發現有一種方法可以將日期分成三至四個部分。

我已複製此代碼,它似乎工作。只是我不明白這一點。我讀過的所有論壇都沒有幫助。任何人都可以解釋給我嗎?

time_t t = time(NULL); 
tm* timePtr = localtime(&t); 

cout << "seconds= " << timePtr->tm_sec << endl; 
cout << "minutes = " << timePtr->tm_min << endl; 
cout << "hours = " << timePtr->tm_hour << endl; 
cout << "day of month = " << timePtr->tm_mday << endl; 
cout << "month of year = " << timePtr->tm_mon << endl; 
cout << "year = " << timePtr->tm_year + 1900 << endl; 
cout << "weekday = " << timePtr->tm_wday << endl; 
cout << "day of year = " << timePtr->tm_yday << endl; 
cout << "daylight savings = " << timePtr->tm_isdst << endl; 
+5

哪一部分你不明白? – 2012-03-18 20:35:10

+0

您需要在月份中添加一個以獲得傳統的月份編號(1月爲1,但'tm_mon'在1月份使用0等),但您已經考慮了年份加上1900年。還有什麼需要解釋? 'localtime()'適用於你程序當前的時區;你可以使用'gmtime()'來確定時間值w.r.t UTC(又名GMT)。時區通常會讓生活更加複雜。 – 2012-03-18 20:35:50

+1

在那段代碼中沒有太多東西需要理解,** localtime()**函數爲你完成所有的骯髒工作,你只需訪問** tm **字段來讀取結果(** time_t **保留日期以緊湊形式顯示,而** tm **將組件中的日期(秒,分鐘,小時,日,月,年和其他有用信息)分割。 – 2012-03-18 20:37:14

回答

0

這是而不是標準C++代碼。這是(也)POSIX代碼。

(最近的C++ 11個標準給你<chrono>但很少編譯器實現它;在Linux上,你需要GCC 4.6或4.7,也有<ctime>

this answer非常有關你的問題。

至於time,gettimeofday,localtime, strftime他們在手冊頁中有很好的參考文獻。你不明白什麼?

(按照我給你的鏈接,仔細閱讀鏈接的頁面)。

+1

」和「」您的C++標準版本? – 2012-03-18 20:40:14

+0

更正,謝謝 – 2012-03-18 20:41:30

相關問題