C Handbuch bestellen

Das C Tutorial (deutsch)

Zeitfunktionen

In diesem Kapitel werden wir uns mit den Zeitfunkionen in C beschäftigen, um die aktuelle Zeit zu erfahren und um sonstige Zeit-Differenzen berechnen zu können, wie z.B. die Rechenzeit unseres Programms, also die Dauer der Ausführung. Für die Zeitfunkionen benötigen wir die Einbindung der Bibliothek time.h. Die Zeitzählung in C beginnt ab dem 01.01.1970 00:00:00 Uhr. Möchte man die aktuelle Zeit, so erhält man die verstrichenen Sekunden ab dem Zeitpunkt 01.01.1970 00:00:00 Uhr und kann daraus die Zeitdaten wie Tag, Stunde und Minute auslesen.

Mit dem folgendem Beispielprogramm kann man die verstrichenen Sekunden seit diesem Zeitpunkt auslesen. Diese Zahl nennt man auch Zeitstempel oder englisch timestamp. Mit time_t now; wird eine Variable zum Abspeichern der Zeit erstellt. time_t stellt einen long int Datentyp dar, um die Sekunden zu speichern. Der Aufruf von time(&now); speichert nun die Sekunden in der im Parameter übergebenen Adresse.

time_t time(time_t *timer);

#include<stdio.h>
#include<time.h>

int main() {
	time_t now;
	time(&now);
	printf("Sekunden seit 01.01.1970 00:00:00 Uhr: %d\n", now);
	return 0;
}
Sekunden seit 01.01.1970 00:00:00 Uhr: 1200236681

Zur besseren Lesbarkeit gibt es eine Konvertierungsfunktion ctime, welche aus dem Zeitstempel das Datum lesbar als String umwandelt. Weiters wird in diesem Beispiel die zweite Möglichkeit gezeigt, wie man mit der time-Funktion die Sekunden ausliest.

char *ctime (const time_t *time);

#include<stdio.h>
#include<time.h>

int main() {
	time_t now;
	now = time(0);
	printf("%s\n", ctime(&now));
	return 0;
}
Sun Jan 13 16:55:16 2008