⊗jsPrCndTD 53 of 62 menu

Kalendoriaus implementavimo JavaScript diskusija

Mūsų kalendorius yra lentelė su skaičiais nuo 1 iki paskutinės mėnesio dienos. Problema ta, kad skaičiai lentelėje pirmoje eilutėje turi prasidėti ne nuo pirmos ląstelės.

Tai apskritai akivaizdu. Neakivaizdu nuo kurios būtent ląstelės reikia pradėti. Pagalvokime.

Tarkime, savaitė prasideda nuo pirmadienio, ir jis yra nulinė diena. Šiuo atveju savaitės dienos numeris pirmąją mėnesio dieną atitinka tuščią ląstelių skaičių prieš ją. Pavyzdžiui, ketvirtadienis turės numerį 3 ir prieš jį bus 3 tuščios ląstelės.

Panaši problema mūsų lauks lentelės pabaigoje. Ten taip pat reikia palikti tuščias ląsteles po paskutinės mėnesio dienos. Šiuo atveju tuščią ląstelių skaičius bus lygus šešiems, iš kurių reikia atimti savaitės dienos numerį paskutinę mėnesio dieną.

Dabar pagalvokime, kaip formuosime savo lentelę. Akivaizdu, kad patogiausia turėti dvimatį masyvą, kuriame kiekviename submasyve bus po 7 elementus (= savaitės dienų skaičiui). Be to, pirmame ir paskutiniame submasyvuose dalis elementų turi būti tušti.

Veiksmų algoritmas

Sukurkime funkciją, kuri sudarys masyvą skaičių nuo 1 iki paskutinės mėnesio dienos. Tada padarykime funkciją, kuri pridės į masyvo pradžią reikiamą kiekį tuščią elementų. Panaši funkcija turi pridėti tuščius elementus į masyvo pabaigą.

Po to mes gausime vienmatį masyvą su elementų skaičiumi, dalumu iš 7. Paverskime šį masyvą į dvimatį po 7 elementų submasyve.

Tada paimkime šį dvimatį masyvą, perrinkime ciklais ir suformuokime savo lentelę.

Šį veiksmų algoritmą mes etapais atliksime kitose pamokose.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti