struct tm macht mich wahnsinnig! Immer falsche Angaben
-
Hallo
Ich möchte eine Klasse "Termin" realisieren. Dazu muss logischerweise auch das Datum und Uhrzeit abgespeichert werden. Wenn ich nun ein struct tm anlege und Werte reinschreibe, diese dann mit strftime formatiere, kommen immer falsche Werte raus.
Ein Beispiel:
struct tm dt; dt.tm_min = 15; dt.tm_hour = 20; dt.tm_mday = 5; dt.tm_mon = 10 - 1; // Monate seit Januar dt.tm_year = 2010 - 1900; // Jahre seit 1900 dt.tm_isdst = 0; // DST ausIn der Variable müsste ja jetzt die Uhrzeit 20:15 vom Tag 5.10.2010 eingespeichert sein. Formatiere ich es aber mit strftime (Format: "%d.%m.%Y, %H:%M"), kommt das heraus:
5.11.2010, 22:27
Wie kommt das zustande? Warum ist 1. der Monat falsch und 2. die Uhrzeit völlig verkorkst?

Ich werde echt wahnsinnig, das kann doch nicht wahr sein, dass das nicht klappt!
Compiler ist GNU GCC, Entwicklungsumgebung ist Code::Blocks.
Gruß,
Andy
-
#include <iostream> #include <ctime> using namespace std; int main() { struct tm dt; dt.tm_min = 15; dt.tm_hour = 20; dt.tm_mday = 5; dt.tm_mon = 10 - 1; // Monate seit Januar dt.tm_year = 2010 - 1900; // Jahre seit 1900 dt.tm_isdst = 0; // DST aus char zeit[200]; strftime(zeit, 200, "%d.%m.%Y, %H:%M\n", &dt); cout << zeit; }
05.10.2010, 20:15Du machst etwas anderes falsch.