Diskutim mbi implementimin e kalendarit në JavaScript
Kalendari ynë është një tabelë
me numra nga 1 deri në ditën e fundit të muajit.
Problemi është se numrat në tabelë në rreshtin e parë
nuk duhet të fillojnë nga qeliza e parë.
Kjo në përgjithësi është e qartë. Nuk është e qartë nga saktësisht cila qelizë duhet të fillojmë. Le të mendojmë.
Supozojmë se java fillon nga e hëna, dhe
ajo është dita zero. Në këtë rast, numri i ditës
së javës për ditën e parë të muajit korrespondon
me numrin e qelizave bosh para saj. Për shembull,
e enjtja do të ketë numrin 3 dhe para
saj do të ketë 3 qeliza bosh.
Një problem i ngjashëm do të na presë në fund të tabelës. Atje gjithashtu duhet të lëmë qeliza bosh pas numrit të fundit të muajit. Në këtë rast, numri i qelizave bosh do të jetë i barabartë me gjashtëshen, nga e cila duhet zbritur numri i ditës së javës për ditën e fundit të muajit.
Tani le të mendojmë se si do ta formojmë
tabelën tonë. Është e qartë se më e përshtatshme është
të kemi një grup dy-dimensional, në secilin nëngrup
të të cilit do të ketë 7 elementë (= numri
i ditëve në javë). Në të njëjtën kohë, në nëngrupet e para dhe të fundit
disa elementë duhet të jenë bosh.
Algoritmi i veprimeve
Le të bëjmë një funksion që do të krijojë një grup
numrash nga 1 deri në ditën e fundit të muajit.
Pastaj le të bëjmë një funksion që do të shtojë
në fillim të grupit numrin e nevojshëm të elementëve bosh.
Një funksion i ngjashëm duhet të shtojë
elementë bosh në fund të grupit.
Pas kësaj, ne do të kemi një grup një-dimensional
me një numër elementësh, të shumtëfish të 7.
Le ta transformojmë këtë grup në një grup dy-dimensional me 7
elementë në nëngrup.
Pastaj do të marrim këtë grup dy-dimensional, do ta përsërisim me cikle dhe do të formojmë tabelën tonë.
Këtë algoritëm veprimesh do ta zbatojmë hapi pas hapi në mësimet e ardhshme.