Как сделать таймер, который сработает через пару месяцев?

Есть задача ставить таймер, который сработает через пару месяцев. Столкнулся с проблемой у QTimer::start(int msec) время указывается в int так еще и в миллисекундах. Получается я могу указать 2147483647 миллисекунд, а это чуть меньше месяца. Раньше пользовался crontab, но от него пришлось отказаться.

Пример кода:

uint sec_prediction, sec_now, answer;

QDateTime now = QDateTime::currentDateTime();
sec_now = now.toTime_t();
QLocale mylocale(QLocale::English);
qDebug() << mylocale.toString(now, "MMM d hh:mm:ss") << sec_now;

QDateTime payment = QDateTime::currentDateTime();
payment = payment.addMonths(3);
sec_prediction = payment.toTime_t();
qDebug() << mylocale.toString(payment, "MMM d hh:mm:ss") << sec_prediction;

answer = sec_prediction - sec_now;
qDebug() << answer;

QTimer timer;
timer.setSingleShot(true);
connect(&timer, SIGNAL(timeout()), this, SLOT(processQueue()));
timer.start(answer * 1000);

Вывод консоли:

"Jan 7 00:42:38" 1673041358
"Apr 7 00:42:38" 1680817358
7776000  - After this time, the timer should start.

QObject::startTimer: Timers cannot have negative intervals

Я использую Qt 4.8, C++98 Признателен за помощь


Ответы (1 шт):

Автор решения: rotabor

Воспользуйтесь планировщиком задач операционной системы

→ Ссылка