Сравнение часов в C / C ++ в 24-часовом формате

0

Как определить, существует ли разница между четырьмя часами в два раза, заданная в 24-часовом формате?

Я пробовал это:

time_t  timeP;
time(&timeP);
//....
time_t  nowP;
time(&nowP);

if((nowP - timeP) % 4 == 0){
    //...
}

Любая лучшая идея, пожалуйста?

  • 0
    А что не сработало?
  • 1
    Подсказки: вы думаете, time_t представляет часы или какую-то другую единицу времени? Как вы думаете, что делает оператор % ?
Показать ещё 1 комментарий
Теги:

1 ответ

3
Лучший ответ
if ((nowP - timeP) % 4 == 0)

Этот код занимает разницу во времени в секундах по модулю 4, что, вероятно, не имеет для вас большого значения.

if ((nowP - timeP) >= 60*60*4)

Это скажет вам, что между двумя точками времени прошло 4 часа. Вы не должны использовать == для сравнения времени, чтобы избежать пропусков времени, которое вы хотите проверить (например, компьютер работает медленно и отстает, системное время синхронизируется и пропускает секунду,...).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню