QTime как добавить / вычесть время QT/C++

Я пытаюсь добавить / вычесть время в объекте QTime.

QString time = "10:00:00";
QTime tobj = QTime::fromString(currentTime,"hh:mm:ss");
tobj.addSecs(3600);
qDebugs() << "time:" << tobj;

Я ожидал, что отладчик выведет "11:00:00", но он останется "10:00:00", почему это и что я смотрю?

1 ответ

Решение

Ваша проблема addSecs()является константной функцией: https://doc.qt.io/qt-5/qtime.html Она не изменяет объект, а возвращает новый объект QTime.

Один из способов решить эту проблему - сделать следующее:

QString time = "10:00:00";
QTime tobj = QTime::fromString(time,"hh:mm:ss").addSecs(3600);
qDebugs() << "time:" << tobj;

Здесь я связал вывод QTime::fromString(time,"hh:mm:ss") с вашим звонком addSecs(3600) значение установлено на tobj будет на 1 час раньше времени.

Другие вопросы по тегам