这是代码:
startDate->setDateTime( QDateTime::currentDateTime() );
finishDate->setDateTime( QDateTime::currentDateTime() );
finishDate->setDateTime(startDate->dateTime().addSecs( 3600 ));
例如现在的时间是13:34
我需要将开始时间四舍五入到14:00 也是圆满到15:00的结束时间
任何人对如何做到这一点都有任何想法?还请举个例子吗?谢谢:D
答案 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);