QT 计算两个QDateTime的时间差,并将时间差显示为时分秒格式文本
时间: 2024-02-16 10:05:37 浏览: 178
可以使用 `QDateTime::time()` 方法获取 `QDateTime` 对象的时间部分,然后使用 `QTime::addMSecs()` 方法将时间差转换为 `QTime` 格式的时间差。最后可以使用 `QTime::toString()` 方法将时间差转换为时分秒格式的文本。
下面是一个示例代码:
```cpp
QDateTime dateTime1 = QDateTime::currentDateTime();
QDateTime dateTime2 = QDateTime::fromString("2022-01-01 00:00:00", "yyyy-MM-dd hh:mm:ss");
qint64 msecsDiff = dateTime1.msecsTo(dateTime2);
QTime timeDiff = QTime(0, 0, 0).addMSecs(msecsDiff);
QString timeDiffStr = timeDiff.toString("hh:mm:ss");
qDebug() << timeDiffStr;
```
这个示例代码会计算当前时间和 2022 年 1 月 1 日 0 点的时间差,并将时间差转换为时分秒格式的文本。
相关问题
QT 计算两个QDateTime的时间差,并将时间差显示为时分秒格式文本(小时可以超过24小时)
如果要处理小时数超过 24 小时的情况,可以使用 `QDateTime::daysTo()` 和 `QDateTime::time()` 方法计算天数差和时间差,然后将时间差转换为时分秒格式的文本。
下面是一个示例代码:
```cpp
QDateTime dateTime1 = QDateTime::currentDateTime();
QDateTime dateTime2 = QDateTime::fromString("2022-01-03 12:34:56", "yyyy-MM-dd hh:mm:ss");
int daysDiff = dateTime1.daysTo(dateTime2);
QTime timeDiff = dateTime1.time().msecsTo(dateTime2.time()) < 0 ?
dateTime2.time().addSecs(-1).addMSecs(dateTime1.time().msecsTo(dateTime2.time())) :
dateTime1.time().addMSecs(dateTime1.time().msecsTo(dateTime2.time()));
QString timeDiffStr = QString("%1:%2:%3")
.arg(timeDiff.hour() + daysDiff * 24, 2, 10, QLatin1Char('0'))
.arg(timeDiff.minute(), 2, 10, QLatin1Char('0'))
.arg(timeDiff.second(), 2, 10, QLatin1Char('0'));
qDebug() << timeDiffStr;
```
这个示例代码会计算当前时间和 2022 年 1 月 3 日 12 点 34 分 56 秒的时间差,并将时间差转换为时分秒格式的文本,可以处理小时数超过 24 小时的情况。
QT 计算两个QDateTime的时间差,并将时间差转化成QDateTime格式
可以使用 `QDateTime::msecsTo()` 方法计算两个 `QDateTime` 之间的毫秒数差。然后可以使用 `QDateTime::addMSecs()` 方法将毫秒数差转换为 `QDateTime` 格式的时间差。
下面是一个示例代码:
```cpp
QDateTime dateTime1 = QDateTime::currentDateTime();
QDateTime dateTime2 = QDateTime::fromString("2022-01-01 00:00:00", "yyyy-MM-dd hh:mm:ss");
qint64 msecsDiff = dateTime1.msecsTo(dateTime2);
QDateTime diffDateTime = dateTime1.addMSecs(msecsDiff);
qDebug() << diffDateTime.toString("yyyy-MM-dd hh:mm:ss");
```
这个示例代码会计算当前时间和 2022 年 1 月 1 日 0 点的时间差,并将时间差转换为 `QDateTime` 格式的时间。
阅读全文