C ++ prüfen, ob ein Datum gültig ist

8

Gibt es irgendeine Funktion, um zu überprüfen, ob ein bestimmtes Datum gültig ist oder nicht? Ich möchte nichts von Grund auf neu schreiben.

z.B. 32/10/2012 ist nicht gültig und 10/10/2010 ist gültig

    
MBZ 24.02.2012, 19:19
quelle

4 Antworten

7

Wenn Ihre Zeichenfolge immer in diesem Format ist, ist es am einfachsten, die Zeichenfolge in ihre drei Komponenten aufzuteilen, eine tm -Struktur zu füllen und sie an mktime() zu übergeben. Wenn es -1 zurückgibt, ist es kein gültiges Datum.

Sie können auch Boost.Date_Time verwenden um es zu analysieren:

%Vor%     
spencercw 24.02.2012, 19:23
quelle
4

Die Boost-Date-Zeitklasse sollte in der Lage sein, mit Ihren Anforderungen umzugehen. Siehe Ссылка

    
Alikar 24.02.2012 19:23
quelle
2

Wenn das Format des Datums konstant ist und Sie keinen Boost verwenden möchten, können Sie immer strptime verwenden, das im Header ctime definiert ist:

%Vor%     
netcoder 24.02.2012 19:44
quelle
0

Wenn die Schrägstriche programmatisch eingefügt werden (das würde ich annehmen, da Sie davon ausgehen, dass sie immer da sind), wäre es wahrscheinlich am besten, Monat, Tag und Jahr separat zu validieren. Zum Beispiel:

%Vor%     
Jim Fell 24.02.2012 20:17
quelle

Tags und Links