Razprava o implementaciji koledarja v JavaScriptu
Naš koledar je tabela
s številkami od 1 do zadnjega dne v mesecu.
Težava je v tem, da številke v tabeli v prvi
vrstici ne smejo začeti s prve celice.
Na splošno je to očitno. Ni očitno, iz katere točno celice je treba začeti. Pomislimo.
Recimo, da se teden začne v ponedeljek, in
to je ničelni dan. V tem primeru številka dneva
v tednu prvega dne v mesecu ustreza
številu praznih celic pred njim. Na primer,
četrtek bo imel številko 3 in pred
njim bo 3 praznih celic.
Podobna težava nas čaka na koncu tabele. Tam prav tako moramo pustiti prazne celice za zadnjo številko meseca. V tem primeru bo število praznih celic enako šest, od katere je treba odšteti številko dneva v tednu zadnjega dne v mesecu.
Pomislimo zdaj, kako bomo oblikovali
našo tabelo. Očitno je najprimerneje
imeti dvodimenzionalno polje, v vsakem podpolju
katerega bo po 7 elementov (= število
dni v tednu). Pri tem morajo biti v prvem in zadnjem
podpolju nekateri elementi prazni.
Algoritem dejanj
Naredimo funkcijo, ki bo naredila polje
števil od 1 do zadnjega dne v mesecu.
Nato naredimo funkcijo, ki bo na začetek
polja dodala potrebno število praznih
elementov. Podobna funkcija naj dodaja
prazne elemente na konec polja.
Po tem bomo dobili enodimenzionalno polje
s številom elementov, večkratnikom 7.
Pretvorimo to polje v dvodimenzionalno po 7
elementov v podpolju.
Nato vzemimo to dvodimenzionalno polje, ga preletimo z zankami in oblikujemo našo tabelo.
Ta algoritem dejanj bomo izvajali po korakih v naslednjih lekcijah.