Wandlung time_t zu char

I--Roth

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich möchte in einem C-Script in WinCC den Mittelwert zwischen zwei Datumsstrings ermitteln und ausgeben.
Dazu habe ich zwei Datumstrings (Startzeit und Endzeit) so formatiert, dass die Funktion mktime damit zurecht kam. Dann habe ich die daraus resultierenden time_t-Werte von einander abgezogen und die Hälfte wieder auf den Startwert aufgeschlagen. Bis dahin ist alles ok. Jetzt muss ich aber den errechneten long-Wert wieder zum String machen. Und da liegt das Problem. Ich kriege den Rechenwert nicht in die Funktion gmtime (soll Umkehrfunktion zu mktime sein) hinein. Weiss jemand,wie es geht?

Gruß Ingo
 
Meinst du sowas?
Code:
char buf[80];
time_t t;
struct tm *mt;

t = 441763200L; /* Beispiel: 1.1.1984 00:00:00 */
mt = gmtime(&t);
strftime(buf, sizeof(buf), "%d.%m.%Y %H:%M:%S", mt); /* 01.01.1984 00:00:00 */
Den Formatstring kannst du dir nach deinen Wünschen anpassen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thomas,

ja,vielen Dank für die prompte Hilfe!

Ich habe mein und Dein Script mal kombiniert und festgestellt, dass 2 Stunden unterschied bestehen. Liegt das an der Sommerzeit und daran, dass gmtime die Greenwich-Zeit herausgibt?
Wenn ich nun einen Offset dazugebe, habe ich jetzt die richtige Zeit erreicht. Weisst Du, was mit dem Rechenwert passiert, wenn wieder Winterzeit ist? Liege ich mit einem Offset dann nicht um eine Stunde daneben?

Gruß Ingo
 
Hallo Thomas,

ich habe es mit localtime nochmalausprobiert und habe jetzt den "richtigen" Datum und Zeitwert erhalten!

Vielen Dank nochmal!

Gruß Ingo
 
Zurück
Oben