2015-07-19 45 views
0

我有一個麻煩與QT qdatetime比較Qt和QdateTime比較

if(now.secsTo(nearest)>0) 

總是顯示相同的號碼。

QDateTime now = QDateTime::currentDateTime(); 
QDateTime nearest = QDateTime::fromString(ui.timetableTable->item(0,2)->data(Qt::DisplayRole).toString(),"dd.MM.yy HH:mm"); 

我怎樣才能得到比較兩個日期的正確結果。感謝幫助!

+4

Яголосуюзазакрытиеэтоговопросакакнесоответствующеготеме,потомучто這個問題屬於對堆棧溢出英語。 – Athari

+0

Унатутвопросыпо-русскизадают,будьтедобрыпереведитесвойвопрос,впротивномслучаеегозакроют。 – ixSci

+0

'總是顯示相同的數字'這是? –

回答

0

問題是,對象以不同的格式進行比較。 將「dd.MM.yy HH:mm」替換爲「dd.MM.yyyy HH:mm」,並且會爲您帶來快樂。事實證明,Qt的比較1915年至2015年

QDateTime now = QDateTime::currentDateTime(); 
QDateTime nearest = QDateTime::fromString("26.07.2015 15:35","dd.MM.yyyy HH:mm"); 
qDebug() << now.toString("dd.MM.yy HH:mm") << nearest.toString("dd.MM.yyyy HH:mm") << now.secsTo(nearest); 

輸出

  • 「15年7月24日20:35」, 「2015年7月26日15:35」 154775
  • 「15年7月24日20: 35" , 「2015年7月26日15:35」 154762

圍繞你的代碼

QDateTime nearest = QDateTime::fromString("26.07.15 15:35","dd.MM.yy HH:mm"); 
qDebug() << now.toString("dd.MM.yyyy HH:mm") << nearest.toString("dd.MM.yyyy HH:mm") << now.secsTo(nearest); 
  • 「2015年7月24日20:47」, 「1915年7月26日15:35」 -3155602364