Kalendāra ieviešanas apspriešana JavaScript
Mūsu kalendārs ir tabula
ar skaitļiem no 1 līdz pēdējām mēneša dienai.
Problēma ir tā, ka skaitļi tabulā pirmajā
rindā jāsāk nevis no pirmās šūnas.
Kopumā tas ir acīmredzami. Nav acīmredzams, no kuras tieši šūnas jāsāk. Padomāsim.
Pieņemsim, ka nedēļa sākas ar pirmdienu, un
tā ir nulles diena. Šajā gadījumā nedēļas dienas numurs
pirmajam mēneša datumam atbilst
tukšo šūnu skaitam pirms tā. Piemēram,
ceturtdienas dienas numurs būs 3, un pirms
tās būs 3 tukšas šūnas.
Līdzīga problēma gaidīs mūs tabulas beigās. Arī tur būs jāatstāj tukšas šūnas aiz pēdējā mēneša datuma. Šajā gadījumā tukšo šūnu skaits būs vienāds ar seši, no kuriem jāatņem nedēļas dienas numurs pēdējai mēneša dienai.
Tagad padomāsim, kā mēs veidosim
mūsu tabulu. Acīmredzami, ka visērtāk
būt divdimensiju masīvam, kurā katrā apakšmasīvā
būs pa 7 elementiem (= dienu skaits nedēļā).
Šajā gadījumā pirmajā un pēdējā
apakšmasīvā dažiem elementiem jābūt tukšiem.
Darbību algoritms
Izveidosim funkciju, kas izveidos masīvu
ar skaitļiem no 1 līdz pēdējai mēneša dienai.
Tad izveidosim funkciju, kas masīva
sākumam pievienos nepieciešamo tukšo
elementu skaitu. Līdzīga funkcija jāpievieno tukšos
elementus masīva beigās.
Pēc tam mums būs viendimensiju masīvs
ar elementu skaitu, kas dalās ar 7.
Pārveidosim šo masīvu par divdimensiju masīvu ar 7
elementiem apakšmasīvā.
Tad paņemsim šo divdimensiju masīvu, izskatīsim ar cikliem un izveidosim mūsu tabulu.
Šo darbību algoritmi mēs pakāpeniski veiksim nākamajās nodarbībās.