Kalendri realiseerimise arutelu JavaScriptis
Meie kalender on tabel
numbritega 1 kuni kuu viimase päevani.
Probleem on selles, et tabeli numbrid esimeses
reas ei pea algama esimesest lahtrist.
Üldiselt on see ilmne. Ei ole ilmne, millisest lahtrist täpselt tuleks alustada. Mõtleme selle üle.
Oletame, et nädal algab esmaspäevast ja
see on nullpäev. Sel juhul vastab kuu esimese
päeva nädalapäeva number tühjade lahtrite
arvule enne seda. Näiteks neljapäeva number on 3 ja enne
seda on 3 tühja lahtrit.
Sarnane probleem ootab meid tabeli lõpus. Seal tuleb samuti jätta tühjad lahTRid pärast kuu viimast numbrit. Sel juhul on tühjade lahtrite arv võrdne kuuega, millest tuleb lahutada kuu viimase päeva nädalapäeva number.
Mõtleme nüüd, kuidas me oma tabelit
moodustame. Ilmselt on kõige mugavam
kasutada kahemõõtmelist massiivi, kus igas alamassiivis
on 7 elementi (= nädalapäevade arv).
Samal ajal peavad osad elemendid esimeses ja viimases
alamassiivis olema tühjad.
Tegevusalgoritm
Teeme funktsiooni, mis loob massiivi
numbritest 1 kuni kuu viimase päevani.
Seejärel teeme funktsiooni, mis lisab
massiivi algusse vajaliku arvu tühje
elemente. Sarnane funktsioon peaks lisama
tühje elemente massiivi lõppu.
Pärast seda saame ühemõõtmelise massiivi
elementide arvuga, mis on 7 kordne.
Teisendame selle massiivi kahemõõtmeliseks, kus on 7
elementi alamassiivi kohta.
Seejärel võtame selle kahemõõtmelise massiivi, tsüklitega läbi ja moodustame oma tabeli.
Seda tegevusalgoritmi hakkame järgmistes õppetükkides etappide kaudu täitma.