Вычислить время наступления события

laredo
Offline
Зарегистрирован: 10.03.2016

Добрый день!
Прошу прощения за возможно глупый вопрос, но только начинаю осваивать программирование:
Есть необходимость отключать нагрузку, скажем, через 4 часа и есть RTC 3231 с которого считывается текущее время, примерно так
 

t= rtc.getTime()
currentHour = t.hours

Теперь мне к текущему часу надо прибавить 4, чтобы получить час выключения, однако переменная currentHour всегда обновляется, а значит время требуемое время отключения offHour никогда не настанет.
 

offHour = currentHour + 4

Соответственно, вопрос: как вычислять время отключения. Допускаю, что возможно необходимо использовать иные методы вычисления, а не прибавление к текущему времени . Заранее спасибо, если подскажите какие.

okta
Offline
Зарегистрирован: 10.01.2015

Читать

Соттветственно, у вас должно получиться что-то вроде

Если(включили нагрузку){посчитать когда выключать}

Araris
Offline
Зарегистрирован: 09.11.2012

Заведите переменную onHour и держите в ней час включения, тогда offHour = onHour + 4, а затем сравнивайте offHour с currentHour.

Не забудьте проверять offHour "на переполнение", ведь в случае, например, onHour = 22 будет явная бессмыслица.

laredo
Offline
Зарегистрирован: 10.03.2016

Дело в том, что onHour может наступить в любой момент времени и не привязан к какому-либо часу. Значит в моем распоряжении только сurrentHour и мне нужно как-то оперировать с ним, насколько я понимаю.

Если включили в 8, то выключить в 12

Проблема "зафиксировать" эти 8...как то-так.

bwn
Offline
Зарегистрирован: 25.08.2014

Ну так не обновляйте offHour, пока не наступило время отключения.