Подскажите как правильно хранить значения времени? Т.е. вкл - 9:30, а выкл - 10:00 и так несколько промежутков.
Ну значит я правильно думал Код (C++): // Утро On = 8 * 60 + 30; //08:30 Off = 9 * 60 + 30; //09:30 if (IsOnOffTime(On, Off, Curent_Time)) Temp = 0.2; // Утро
А можно как то одной процедурой получить дату и время? А не через эту конструкцию? Код (C++): dataString += String(hm.day()) + '.' + String(hm.month()) + '.' + String(hm.year()); // дата dataString += " "; dataString += String(hm.hour()) + ':' + String(hm.minute()) + ':' + String(hm.second()); // время
До обновления библиотеки делал так: Код (C++): dataString += String(rtc.getDateStr()); // дата dataString += ";"; dataString += String(rtc.getTimeStr()); // время
к чему вы это написали? Я вам подсказал что делать - напишите свою функцию выдачи времени и даты в нужном формате, ничего в этом сложного нет.
Если так написать Код (C++): dataString += hm.day() + '.' + hm.month() + '.' + hm.year(); // дата то в строчке получается: "2141"
А вы чего ждали - чуда? Компилятор не будет за вас догадываться, что вы хотите: вы попросили его сначала сложить некоторые числовые значения (код символа '.' - тоже суть число), потом - вызвать оператор конкатенации класса String, для типа int. Вот он вам сначала сложил, потом - это число преобразовал в строку. Что написали - то и получили. Если хотите по-другому - пишите по-другому: Код (C++): dataString += hm.day(); dataString += "."; dataString += hm.month(); dataString += "."; dataString += hm.year(); // дата Или так: Код (C++): dataString += String(hm.day()) + "." + String(hm.month()) + "." + String(hm.year()); // дата А вообще - для таких случаев прекрасно подходит sprintf, чтобы не было этих извращений с промежуточными объектами и постоянными реаллоками памяти.
затем, что написать свою функцию в 1-2 строки - пара минут вместе с изучением мануала, а вы уже третий день задаете вопросы на форуме...