Работа с условиями, плюсует вместо добавления.
- Войдите на сайт для отправки комментариев
Ср, 03/04/2013 - 17:58
if (rtc[2]+rtc[1] == AutoOff) { AutoOff=0; }
Вот такой простенький пример.
В AutoOff записывается время, например 1230.
В rtc[2] хранятся часы, а в rtc[1] минуты.
Следовательно если AutoOff совспадает с временем то сто-то происходит.
Но почему выше преведенный пример, вот тут rtc[2]+rtc[1] плюсует 2 фицры. Мне нужно просто необходимо вставить часы и минуты. Пробовал через точку rtc[2].rtc[1] Появляется ошибка компелации. Что делать?
Поскольку мы только догадываемся, как описан массив rtc, но как бы то ни было, таким образом сравнивать нельзя.
Самое простое, приводить всё к минутам и сравнивать минуты, например:
Тогда сравнение может выглядеть как:
Можно сравнивать и в текстовом формате, однако в моем варианте можно использовать сравнение как на равенство, так и больше/меньше, а с текстом так не получится. Разумеется нужно помнить, что часы и минуты повторяются с периодом в одни сутки ;) Т.е. 12:30 есть и сегодня и завтра и послезавтра и т.п.
Вот такой простенький пример.
В AutoOff записывается время, например 1230.
В rtc[2] хранятся часы, а в rtc[1] минуты.
Следовательно если AutoOff совспадает с временем то сто-то происходит.
Но почему выше преведенный пример, вот тут rtc[2]+rtc[1] плюсует 2 фицры. Мне нужно просто необходимо вставить часы и минуты. Пробовал через точку rtc[2].rtc[1] Появляется ошибка компелации. Что делать?
Для сравнения не обязательно умножать минуты на 60 , а часы на 24.
Прозрачнее умножать часы на 100.
А дни на 10000, месяцы на 1000000 .....
Уже и не говорю о годах, сами подберите количество нулей после единицы.
unsigned long приветствуется, если надо.
P.S.
Хотя обычно пишут >= или <= , а то условие иногда может и не выполнится.