Я пытаюсь записать день месяца на TFT-дисплей из экземпляра DateTime
. Данные для экземпляра DateTime
поступают из RT C.
По сути, я пытаюсь сделать это:
DateTime timenow;
timenow = rtc.now(); // Get and store the current RTC data as DateTime.
tft.textWrite(timenow.day()); // This doesn't work (see below), but it shows the idea of what I am trying to do.
tft.textWrite
принимает char
как его параметр, но timenow.day()
, кажется, выводит int
. Единственный способ заставить его работать (, что, как вы увидите, ), очевидно, не очень хороший способ, - создать огромный массив со всеми числами от 1 до 31 в виде char
:
const char days[31][3] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"};
Затем я использовал массив в своем коде:
DateTime timenow;
timenow = rtc.now(); // Get and store the current RTC data as DateTime.
tft.textWrite(days[timenow.day() - 1]);
К сожалению, я должен сделать то же самое в течение года, и я не могу набрать вручную во все годы в обозримом будущем в массив. Это заняло бы память и, кроме того, было бы излишне трудоемким.
Мой вопрос, может кто-нибудь сказать мне, как я могу преобразовать из int
в char
для использования в эта функция без необходимости огромного массива?
Я перепробовал все от String(timenow.day())
до char(timenow.day())
до таких вещей, как char(String(timenow.day()))
и ни один из них, кажется, не работает.