2017-02-17 4 views
0

Ich muss eingehenden Strings mit dem Datum und der Uhrzeit vom DS1307 RTC-Modul vergleichen. Ich werde ein Ereignis auslösen, wenn die bestimmte Zeit von den Zeichenfolgen erreicht wird.DateTime, String Vergleich

Ich habe versucht, mit der Konvertierung in Ganzzahl, aber es funktioniert nicht.

String now_int = rtc.now(); 

Fehler sagt conversion from DateTime to non-scalar type String is requested

Wie kann ich Datetime mit einem String vergleichen?

+0

'now()' gibt ein 'DateTime'-Objekt zurück, kein String oder ein int. –

+1

Mögliches Duplikat von [Wie konvertiert man eine Zeichenfolge in datetime in C++] (http://stackoverflow.com/questions/4781852/how-to-convert-a-string-to-datetime-in-c) – Shawn

+0

können Sie posten Ihr komplettes Beispiel, besonders den Vergleich, den Sie durchführen möchten? – BNT

Antwort

0

Sie könnten eine Kombination von sprintf und strcmp verwenden, um Ihr beschriebenes Verhalten zu erreichen, z. ähnlich wie 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 
} 

Oder Sie Ihren rtc.now() Datetime nach Ihrem Format konvertieren, wie bei den arduino stackexchange beschrieben über.