⊗jsPrCndTD 53 of 62 menu

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.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij