Как определить, существует ли разница между четырьмя часами в два раза, заданная в 24-часовом формате?
Я пробовал это:
time_t timeP;
time(&timeP);
//....
time_t nowP;
time(&nowP);
if((nowP - timeP) % 4 == 0){
//...
}
Любая лучшая идея, пожалуйста?
if ((nowP - timeP) % 4 == 0)
Этот код занимает разницу во времени в секундах по модулю 4, что, вероятно, не имеет для вас большого значения.
if ((nowP - timeP) >= 60*60*4)
Это скажет вам, что между двумя точками времени прошло 4 часа. Вы не должны использовать ==
для сравнения времени, чтобы избежать пропусков времени, которое вы хотите проверить (например, компьютер работает медленно и отстает, системное время синхронизируется и пропускает секунду,...).
time_t
представляет часы или какую-то другую единицу времени? Как вы думаете, что делает оператор%
?