2014-11-04 17 views
0

這是代碼:如何在QT中將時間收集到下一個小時?

startDate->setDateTime(QDateTime::currentDateTime()); 
finishDate->setDateTime(QDateTime::currentDateTime()); 
finishDate->setDateTime(startDate->dateTime().addSecs(3600)); 

例如現在時間是13:34

我需要的開始時間四捨五入至14:00 也結束時間四捨五入至15 :00

任何人有任何想法如何做到這一點?請舉個例子嗎?感謝:d

回答

4

假設你將永遠在最近時間(從來沒有超過1970年以上)操作,您可以使用所謂的unixtime和簡單的數學,就像這樣:

uint unixtime = QDateTime::currentDateTime().toTime_t(); // current unix time 
uint roundHour = unixtime + (3600 - unixtime % 3600); // round it up to an hour 
QDateTime start; 
QDateTime hourLater; 
start.setTime_t(roundHour); // set start datetime to rounded time 
hourLater.setTime_t(roundHour + 3600); // set finish time to one hour later 
startDate->setDateTime(start); 
finishDate->setDateTime(hourLater); 
+0

我已經試過你的代碼我得到這個錯誤:test.cpp:'class QDateTimeEdit'has no member named'setTime_t' test.cpp:62:error:'class QDateTimeEdit'has no member named'setTime_t' make:*** [test.o] Error 1 $ – navzy 2014-11-04 13:50:28

+0

哦,所以'startDate'和'finishDate'是'QDateTimeEdit'。我認爲他們只是'QDateTime'。讓我更新這個例子。 – Googie 2014-11-04 13:52:32

+0

歡呼傢伙!這工作:我欣賞它! – navzy 2014-11-04 14:01:09

相關問題