Razgovor o implementaciji kalendara u JavaScript-u
Naš kalendar je tabela
sa brojevima od 1 do poslednjeg dana u mesecu.
Problem je što brojevi u tabeli u prvom
redu ne bi trebalo da počnu od prve ćelije.
To je uopšteno očigledno. Nije očigledno iz koje tačno ćelije treba početi. Hajde da razmislimo.
Neka nedelja počinje ponedeljkom, i
on je nulti dan. U ovom slučaju redni broj dana
nedelje prvog dana u mesecu odgovara
količini praznih ćelija ispred njega. Na primer,
četvrtak će imati broj 3 i ispred
njega će biti 3 prazne ćelije.
Sličan problem će nas čekati na kraju tabele. I tamo je potrebno ostaviti prazne ćelije posle poslednjeg dana u mesecu. U ovom slučaju količina praznih ćelija biće jednaka šest, od koje treba oduzeti redni broj dana nedelje poslednjeg dana u mesecu.
Razmislimo sada, kako ćemo formirati
našu tabelu. Očigledno je da je najpogodnije
imati dvodimenzionalni niz, u svakom podnizu
koga će biti po 7 elemenata (= količini
dana u nedelji). Pri tome u prvom i poslednjem
podnizu deo elemenata treba da bude prazan.
Algoritam akcija
Napravićemo funkciju, koja će napraviti niz
brojeva od 1 do poslednjeg dana u mesecu.
Zatim ćemo napraviti funkciju, koja će dodati na
početak niza potrebnu količinu praznih
elemenata. Slična funkcija treba da dodaje
prazne elemente na kraj niza.
Posle ovoga, dobićemo jednodimenzionalni niz
sa količinom elemenata, deljivom sa 7.
Transformisaćemo ovaj niz u dvodimenzionalni po 7
elemenata u podnizu.
Zatim ćemo uzeti ovaj dvodimenzionalni niz, proći kroz njega petljama i formirati našu tabelu.
Ovaj algoritam akcija ćemo fazno izvršavati u narednim lekcijama.