Помогите с кодом Есть числа типа int hours = 9; int minutes = 7; как из этого получить long time = 09.07;
Во-первых, long - целочисленный тип, и 09.07 вы никак из него не получите. Во-вторых, подозреваю, что вам надо вывести эти числа в виде строки, на дисплей, например. Тогда так: Код (C++): String formatTime(uint8_t hours, uint8_t minutes) { String result; if(hours < 10) result += '0'; result += hours; result += ':'; if(minutes < 10) result += '0'; result += minutes; return result; } void setup() { Serial.begin(9600); Serial.println(formatTime(9,7)); } void loop() { }
Спасибо, но проблема в том, что на QuadDisplay так не вывести информацию, там слишком скудная библиотека для такого...
Так что вам надо? Если во float, а не в long перевести два числа - это же арифметика простая: Код (C++): float time = hours + minutes/100;
Если же надо выводить куда-то, без использования всяких String и пр. - то это тоже банальная арифметика: Код (C++): void sendDigitToDisplay(int digit) { // тут отображаете переданное число } void showTime(int hours, int minutes) { if(hours < 10) sendDigitToDisplay(0); sendDigitToDisplay(hours); if(minutes < 10) sendDigitToDisplay(0); sendDigitToDisplay(minutes); }
Прежде чем писать "ну-ну" - заглянули бы в бибилиртеку QuadDisplay. Функция void QuadDisplay::displayScore(int hour, int minute, bool blink) делает ровно то, что вы хотите - выводит часы с минутами, дополняя их спереди нулями, если нужно. Нафига писать в конференции., не разобравшись в крохотной либе с пятком функций? или только вопросы задавать умееете, а думать кто-то другой должен?
Действительно, моя вина Нужно было решить проблему, времени не много было. Но спасибо, очень выручили...