Suche
Suche Menü

Kalenderstruktur

Um die Zeitdaten wie Tag, Monat, Jahr, Stunde und Minute leichter herauslesen zu können, gibt es in der time.h eine Struktur namens tm. Diese ist wie folgt definiert:

struct tm {
	int tm_sec;	// Sekunden
	int tm_min;	// Minuten
	int tm_hour;	// Stunden (0..23)
	int tm_mday;	// Monatstage (1..31)
	int tm_mon;	// Monate (0..11)
	int tm_year;	// Jahr (Kalenderjahr - 1900)
	int tm_wday;	// Wochentag (0..6, 0=Sonntag)
	int tm_yday;	// Tag im Jahr (0..365)
	int tm_isdst;	// Sommerzeit, 0=deaktiviert
};

Wir wollen diese fertige Struktur nun verwenden. Die Funktion localtime füllt diese anhand eines Zeitstempels. Danach werden die Elemente der Struktur ausgegeben. Im folgenden Beispiel Stunde, Minute und Sekunden. Auf die restlichen Elemente wird analog zugegriffen.

struct tm* localtime (const time_t *time);

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

int main() {
	time_t now;
	time(&now);
	struct tm *myTm;
	myTm = localtime(&now);
	printf("%02d:%02d:%02d Uhr\n", myTm->tm_hour, myTm->tm_min, myTm->tm_sec);
	return 0;
}

17:07:27 Uhr

Um die Zeitdaten einer tm-Struktur lesbar auszugeben, gibt es die Funktion asctime, welche aus den Daten einen lesbaren String erstellt.

char* asctime(const struct tm *time);

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

int main() {
	time_t now;
	time(&now);
	struct tm *myTm;
	myTm = localtime(&now);
	printf("%s\n", asctime(myTm));
	return 0;
}

Sun Jan 13 17:13:40 2008