QT - действительно мощная структура, вы просто неправильно кодируете решение.
Представьте боль в спине, просто проверяйте даты, високосные годы и т. Д.
каждую дату иУ dateTime есть методы для выполнения математических операций над календарем.
см. этот пример как ref:
//
QDateTime dateOrigin = QDateTime::currentDateTime();
QDateTime ReturnDate = QDateTime::currentDateTime();
QString isoDate{dateOrigin.toString(Qt::ISODate)};
qDebug() << "before: " << isoDate;
ReturnDate = dateOrigin.addDays(1);
ReturnDate = dateOrigin.addMonths(1);
ReturnDate = dateOrigin.addYears(1);
qDebug() << "after: " << ReturnDate.toString(Qt::ISODate);
//
update: предположим, что 201903120858031 - это время даты, форматированное как ггггММддЧЧммсс , затем вы можете преобразовать это значение в длинное
//201903120858031
//yyyyMMddHHmmss
qDebug() << "after: " << ReturnDate.toString("yyyyMMddHHmmss");
qDebug() << "after as long number: " << ReturnDate.toString("yyyyMMddHHmmss").toLong();
, производя вывод:
до: "2019-02-28T12: 43: 33"
после: "20200228124333"
после как номер: 20200228124333