| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
pcAlko
Anmeldungsdatum: 14.05.2007 Beiträge: 68
|
Verfasst am: 29. Okt 2011 22:08 Titel: mktime gibt komisches datum zurück |
|
|
Hallo community!
Ich habe da ein ganz komisches Problem!
habe folgenden code probiert
| Code: |
time_t acttime;
struct tm* ttime;
time(&acttime);
cout << asctime(localtime(&acttime));
ttime= localtime(&acttime);
ttime->tm_sec= 0;
ttime->tm_min= 0;
ttime->tm_hour= 0;
ttime->tm_mday+= 2;
acttime= mktime(ttime);
cout << asctime(localtime(&acttime)) << endl;
|
meine Ausgabe ist nun
Sat Oct 29 23:00:59 2011
Sun Oct 30 23:00:00 2011
wieso hat er mir da jetzt eine Stunde zuwenig berechnet?
wenn ich nur einen Tag aufrechne funktionierts
*edit*
das hängt jetzt aber nicht davon ab dass die Ausgangszeit auch 23:00 Uhr war
hatte dieses Phänomen auch zuvor um 9:00
*edit2*
heute Vormittag habe ich es nochmoals probiert
und die Ausgabe war richtig
Sun Oct 30 10:43:22 2011
Tue Nov 1 00:00:00 2011
ich muss dass jetzt auf längere Zeit beobachten
irgendwas ist da konfus
******************
Linux ist ja open source
was muss ich installieren damit ich diese Funktion mktime debuggen kann?
habe ein Kubuntu 10.04
sind diese time.c sourcen nicht in der glibc library?
oder muss ich einen ganzen Kernel mit sourcen installieren?
******************
kann mir da jemand helfen!?
Bitte, Danke
pcAlko |
|
| |
|
|
Janka

Anmeldungsdatum: 11.02.2006 Beiträge: 3270
|
Verfasst am: 30. Okt 2011 11:28 Titel: |
|
|
Du hast das Feld ttime->tm_isdst nicht auf einen negativen Wert gesetzt. Das müsstest du aber, wenn er bei mktime() automatisch die Sommerzeit der Locale beachten soll. Ein fester Wert von 0 legt ewige Winterzeit fest, ein positiver Wert ewige Sommerzeit. Vemutlich steht da also zufällig Null drin, weswegen es jetzt (in Winterzeit) korrekt funktioniert.
$ man mktime
Janka _________________ Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie. |
|
| |
|
|
pcAlko
Anmeldungsdatum: 14.05.2007 Beiträge: 68
|
Verfasst am: 30. Okt 2011 16:16 Titel: |
|
|
na super *ironie*
das ärgert mich jetzt schon so lange dass ich es inzwischen schon mal aufgegeben hatte
und jetzt wieder in angriff genommen habe.
für tm_isdst steht ja in der Doku dass das die "daylight saving time" ist.
ich hatte das immer mit Tageslicht übersetzt
und dachte mir dass ich damit auf das 12 Stunden Format umschalten kann
Danke Janka
wenn wir Dich nicht hätten ...
pcAlko |
|
| |
|
|
Janka

Anmeldungsdatum: 11.02.2006 Beiträge: 3270
|
|
| |
|
|
|
|