localtime tm_yday 1 Tag zu wenig?
-
Hallo ich habe ein Frage, mir ist bei dem kleinen Programm folgendes aufgefallen:
time_t sekunden = time( (time_t *) 0 ); //Heute: 18.5.2009 tm *ptm = localtime( &sekunden ); int iDayOfYear = ptm->tm_yday;
Bei iDayOfYear kommt 137 Tage, aber wenn ich jetzt rechne:
Januar: 31 Tage
Februar: 28 Tage
März: 31 Tage
April: 30 Tage
Heute: 18 Tagedann komme ich auf 138 Tage, also stimmt da wohl was nicht.
-
meinst du damit, daß tm_yday http://www.cplusplus.com/reference/clibrary/ctime/tm/ bei 0 anfängt, zu zählen?
-
stimmt ^^ aber warum?
-
lord_fritte schrieb:
stimmt ^^ aber warum?
willkürliche definition. es ist ja wurstegal, ub man mit 1 oder 0 anfängt.
vielleicht wollten die definierer erlauben, daß man schweineschnell einen tm_yday als arrayindex nehmen kann, während man davon ausging, daß die ausgabe an einen menschen per drucker oder bildschirm eh mindestens 1000000 länger dauert als interne rechenfummeleien.
-
volkard schrieb:
vielleicht wollten die definierer erlauben, daß man schweineschnell einen tm_yday als arrayindex nehmen kann...
das könnte man ja einsehen, wenn jeder tag des jahres einen eigenen namen hätte.
-
+fricky schrieb:
volkard schrieb:
vielleicht wollten die definierer erlauben, daß man schweineschnell einen tm_yday als arrayindex nehmen kann...
das könnte man ja einsehen, wenn jeder tag des jahres einen eigenen namen hätte.
hat er. keine bange.
der erste heißt 0
der zweite heißt 1
der dritte heißt 2
der vierte heißt 3
der fünfte heißt 4
und so weiter...
-
Naja ok, danke.
-
volkard schrieb:
hat er. keine bange.
der erste heißt 0
der zweite heißt 1
der dritte heißt 2
der vierte heißt 3
der fünfte heißt 4
und so weiter...wie phantasielos. hätten sie dabei wenigestens an namenstage gedacht.