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 час раньше времени.