datum stimmt nicht, lässt sich auch nicht änderen... why?
-
Für mein Pacsnake hab ich ein log file, welches auflistet ob bilder richtig ge-
laden wurden oder wenn nicht, was der grund dafür ist. es wird beim log auch
eine zeit mit angegeben, also mit datum... aber anstatt zum beispiel:8:56:24 am 25.1.2011
steht:
8:56:24 am 25.0.2011
wie ihr dem source-code unten entnehmen könnt, veränder ich den wert von
tm_mon um 1... wieso gibt er mir trotzdem 0 aus?void setLogTime(FILE *error, int mode){ struct tm* lzeit; time_t zeit; time(&zeit); lzeit = localtime(&zeit); lzeit->tm_mon + = 1; if(mode == START) fprintf(error,"Log um %d:%d:%d am %d.%d.%d\n", lzeit->tm_hour, lzeit->tm_min, lzeit->tm_sec, lzeit->tm_mday, lzeit->tm_mon, lzeit->tm_year+1900); else if(mode == END) fprintf(error,"Log End um %d:%d:%d am %d.%d.%d\n\n\n", lzeit->tm_hour, lzeit->tm_min, lzeit->tm_sec, lzeit->tm_mday, lzeit->tm_mon, lzeit->tm_year+1900); else fprintf(error,"End of Log Failed! --> setLogTime(FILE *error, int mode) -> mode isn´t right value!\n\n\n"); }
gruß
ITEDVO
-
Geht das nicht einfacher?
time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); printf ( "Current local time and date: %s", asctime (timeinfo) );
Und muss es nicht bei dir += ohne Leerzeichen dazwischen sein?
-
Du schreibst lzeit->tm_mon + = 1;
Es muss aber beim += ohne Leerzeichen sein.Warum nimmst du nicht strftime()?
-
itedvo schrieb:
lzeit->tm_mon + = 1;
Und das akzeptiert der Compiler?
+= muss man zusammenschreiben.
-
oh, gibts ja nich... tipp fehler meiner seits und nein, der compiler gibt
nicht mal ne warnung aus...gibts ja nich...
[edit]: dennoch, es wird immer noch 0 ausgegeben... generell stimmt das datum
nicht, so hat er als log nicht am 24.12.2010 das eigentliche datum ausgegeben,
sondern den 24.11.2010... generell also um eins zurück...
-
Versuch doch mal
fprintf(error,"Log um %2d:%02d:%02d am %02d.%02d.%d\n", lzeit->tm_hour, lzeit->tm_min, lzeit->tm_sec, lzeit->tm_mday, lzeit->tm_mon + 1, lzeit->tm_year+1900); ^ DA +1
Aber strftime() ist immer noch besser
-
Wenn du noch in der Designphase deiner Logdatei bist, empfehle ich dir, ein möglichst einfach auswertbares/sortierbares Datumsformat zu verwenden, z.B. statt
8:56:24 am 25.1.2011
besser
2011.01.25 08:56:24
-
Dann aber nach der Norm mit - statt .
2011-01-25 08:56:24
Das ist eindeutig und gibt kein Durcheinander mit der Reihenfolge.
-
ah, ja nach der norm ist sicherlich ne gute idee...
DirkB schrieb:
Versuch doch mal
fprintf(error,"Log um %2d:%02d:%02d am %02d.%02d.%d\n", lzeit->tm_hour, lzeit->tm_min, lzeit->tm_sec, lzeit->tm_mday, lzeit->tm_mon + 1, lzeit->tm_year+1900); ^ DA +1
hab ich auch schon versucht... er gibt mir noch immer 0 für den monat aus...