如何在QT中将时间缩短到下一个小时?

时间:2014-11-04 13:34:40

标签: qt

这是代码:

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

例如现在的时间是13:34

我需要将开始时间四舍五入到14:00 也是圆满到15:00的结束时间

任何人对如何做到这一点都有任何想法?还请举个例子吗?谢谢:D

1 个答案:

答案 0 :(得分:5)

假设您将始终在最近的日期(从未超过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);