Diskussion der Implementierung eines Kalenders in JavaScript
Unser Kalender ist eine Tabelle
mit Zahlen von 1 bis zum letzten Tag des Monats.
Das Problem besteht darin, dass die Zahlen in der Tabelle in der ersten
Reihe nicht von der ersten Zelle an beginnen sollen.
Das ist im Allgemeinen offensichtlich. Nicht offensichtlich ist, von welcher Zelle genau man anfangen muss. Lasst uns das durchdenken.
Angenommen, die Woche beginnt am Montag, und
er ist der Nullte Tag. In diesem Fall entspricht die Tagesnummer
in der Woche des ersten Tages des Monats der
Anzahl der leeren Zellen davor. Zum Beispiel
wird der Donnerstag die Nummer 3 haben und davor
werden 3 leere Zellen sein.
Ein ähnliches Problem erwartet uns am Ende der Tabelle. Auch dort müssen leere Zellen nach der letzten Zahl des Monats belassen werden. In diesem Fall ist die Anzahl der leeren Zellen gleich sechs, von der die Tagesnummer in der Woche des letzten Tages des Monats abgezogen werden muss.
Überlegen wir nun, wie wir unsere
Tabelle bilden werden. Offensichtlich ist es am bequemsten,
einen zweidimensionalen Array zu haben, in jedem Unterarray
von dem sich 7 Elemente befinden (= Anzahl der
Tage in der Woche). Dabei müssen im ersten und letzten
Unterarray einige Elemente leer sein.
Ablaufplan
Wir erstellen eine Funktion, die einen Array
von Zahlen von 1 bis zum letzten Tag des Monats erstellt.
Dann erstellen wir eine Funktion, die am
Anfang des Arrays die notwendige Anzahl leerer
Elemente hinzufügt. Eine analoge Funktion soll leere
Elemente am Ende des Arrays hinzufügen.
Danach erhalten wir einen eindimensionalen Array
mit einer Anzahl von Elementen, die ein Vielfaches von 7 ist.
Wir wandeln diesen Array in einen zweidimensionalen um, mit 7
Elementen pro Unterarray.
Dann nehmen wir diesen zweidimensionalen Array, durchlaufen ihn mit Schleifen und bilden unsere Tabelle.
Diesen Ablaufplan werden wir schrittweise in den folgenden Lektionen umsetzen.