Hello out there!
var FruehlAnfang = 0; // 0 = Maerz
Wie kommst du darauf, dass die Zählung der Monate bei März beginnt? (Das war mal so, ist aber schon etliche Jahrhunderte her.)
0 entspricht in JavaScript dem Januar. (Wer sich diesen Schwachsinn ausgedacht hat, gehört auf dem Marktplatz ausgepeitscht. Oder auch nicht, sowas ist ja auch schon etliche Jahrhunderte her.)
var FruehlEnde = 2; // 2 = Mai
var SommerAnfang = 3; // 3 = Juni
var SommerEnde = 5; // 5 = August
var HerbstAnfang = 6; // 6 = September
var HerbstEnde = 8; // 8 = November
var WinterAnfang = 9; // 9 = Dezember
var WinterEnde = 11; // 11 = Februar
Warum so umständlich? Statt
if (Monat >= FruehlAnfang && Monat <= FruehlEnde )
kannst du auch abfragen
if (Monat >= FruehlAnfang && Monat < SommerAnfang)
Du brauchst also die Hälfte dieser Konstanten gar nicht.
Eigentlich brauchst du sie alle nicht: Du addierst zum Monat 1 dazu, teilst durch 3 und nimmst davon den <http://de.selfhtml.org/javascript/objekte/math.htm#floor@title=ganzzahligen Anteil>:
Monat m m+1 (m+1)/3 floor((m+1)/3) Jahreszeit
Januar 0 1 0.333 0 Winter
Februar 1 2 0.667 0 Winter
März 2 3 1 1 Frühling
April 3 4 1.333 1 Frühling
Mai 4 5 1.667 1 Frühling
Juni 5 6 2 2 Sommer
⋮ ⋮ ⋮ ⋮ ⋮ ⋮
November 10 11 3.667 3 Herbst
Dezember 11 12 4 4 Winter
Wie du siehst, gibt dir das die Jahreszeit.
Und für die Fallunterscheidung ist hier http://de.selfhtml.org/javascript/sprache/bedingt.htm#switch@title=switch eleganter als mehrere if:
var jetzt = new Date();
switch(Math.floor((jetzt.getMonth()+1)/3) {
case 1: /* Frühling */; break;
case 2: /* Sommer */; break;
case 3: /* Herbst */; break;
default: /* Winter */;
}
See ya up the road,
Gunnar
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)