2017-02-17 25 views
0

Мне нужно сравнить входящие строки с датой и временем с модуля DS1307 RTC. Я собираюсь запустить событие, если определенное время из строк будет достигнуто.DateTime, сравнение строк

Я пробовал использовать преобразование в целое число, но оно не работает.

String now_int = rtc.now(); 

Ошибка говорит conversion from DateTime to non-scalar type String is requested

Как я могу сравнить DateTime со строкой?

+0

'now()' возвращает объект 'DateTime', а не строку или int. –

+1

Возможный дубликат [Как преобразовать строку в datetime в C++] (http://stackoverflow.com/questions/4781852/how-to-convert-a-string-to-datetime-in-c) – Shawn

+0

вы можете публиковать сообщения ваш полный пример, особенно сравнение, которое вы собираетесь выполнять? – BNT

ответ

0

Вы можете использовать комбинацию sprintf и strcmp для достижения описанного поведения, например. похож на this

// date and time from RTC 
DateTime now = rtc.now(); 

// date and time to compare with - this is provided by you 
String datetimeCompare = "1970/01/01 00:00:00"; 

// this buffer must be big enough for your complete datetime (depending on the format) 
char datetimeBuffer[20] = ""; 

// convert current date and time to your specific format 
sprintf(datetimeBuffer, "%04d/%02d/%02d %02d:%02d:%02d", now.year(), now.month(), now.day(), now.hour(), now.minute(), now.second()); 

// perform the comparison 
if(strcmp(datetimeBuffer, datetimeCompare.c_str()) == 0) 
{ 
    // datetime strings are the same 
} 

Или конвертировать rtc.now() DateTime в соответствии с вашим форматом, как описано более в arduino stackexchange.