Как сложить время. Ардуино
- Войдите на сайт для отправки комментариев
Ср, 31/07/2019 - 19:59
Вопрос по ардуино(c++). Имеется модуль часов реального времени zs-042(DS3231). на его базе хочу сделать таймер(с паузой). Хочу брать время с модуля и прибавлять к нему время таймера и сохранять в переменную. Если время с модуля совпадают с временем в переменной то время истекло. Но как к времени с модуля прибавить время таймера(полтора часа или 90 минут)? Казалось всё просто берём часы и минуты к часам прибавляем 1, а к минутам 30. Но это не работает если времени например 18:50.Тогда получается 19:80, а не нужные 20:20.
Есть варианты как сложить время?
Если есть пишите в ответы!
Unix time
Разные!!!
да ну? в идеале жеж надо просто создать переменную ТИПА time
Тип переменной time не встречал (укажите где почитать), наверное unsigned long в помощь придёт.
И как вы время измеряете? В секундах или микросекундах? Без скетча не понятно...
19:80
80 > 59 к часам +1 (получаем 20), 80 вычитаем 60
20 > 59 нет - значит 20 верное число минут
20:20
Казалось всё просто берём часы и минуты к часам прибавляем 1, а к минутам 30. Но это не работает если времени например 18:50.Тогда получается 19:80, а не нужные 20:20.
Есть варианты как сложить время?
ИМХО. Вы или боитесь лишнюю букву в коде написать (ищите щаблон) или у Вас туго с логикой. Задача немногим сложнее, чем когда учат первоклашек переходу через десяток. Выше вам целых 2 пути показали. И не стесняйтесь, спрашивайте... может и посмеемся, но в нужную сторону пнем, а там сами решайте - лететь или не лететь.
если секунды не нужны, используй свёртку времени 60*часы+минуты. Потом прибавляй к получившемуся нужное количество минут и разворачивай взат
часы = результат / 60
минуты = результат % 60
как отслеживать изменение суток сама угадаешь7
Это-то не проблема, гораздо хуже, когда при сложении происходит переход через границу месяца и нужно понимать сколько в нём дней.
Самый просто вариант Вам уже сказали, преобразуете своё время и интервал, который нужно прибавить в unix-time, складываете как обычные числа, а результат преобразуете обратно. Благо для преобразований есть готовые функции и самому писать ничего не надо.
В ардуино Вам доустпен файл <time.h> - вот это как раз оно самое.
спасибо всем!