Я пытаюсь получить свою программу, если событие достигается в течение дня
например, я хочу иметь возможность создавать события в 10:00:00, чтобы задача выполнялась в тот момент дня (только один раз)
поэтому у меня есть эта функция, которая может сказать, что время прошло, но оно всегда вернет истину после 10:00 (параметр времени)
bool Tools::passedTimeToday(std::time_t time)
{
auto now = std::chrono::system_clock::now();
std::time_t _now = std::chrono::system_clock::to_time_t(now);
if (std::difftime(_now,time)<0)
return false;
else
return true;
}
как мне проверить, что время прошло только один раз?
я использую какой-то эпсилон в это время? какое значение я должен использовать для этого эпсилона?
double delta = std::difftime(_now,time);
if ( (delta<0) && (delta>-epsilon) )
{
...
Я имею в виду, что это может сработать, но что, если моя программа проверит это условие слишком поздно (больше, чем epsilon)?
Я думал об использовании вместо этого логического флага (обработанный bool), но затем каждый раз, когда я запускаю программу, она также запускает все задачи, которые произошли в то время
любая помощь приветствуется
спасибо