⊗jsPrCndTD 53 of 62 menu

Diskussion om implementering av kalender i JavaScript

Vår kalender är en tabell med nummer från 1 till sista dagen i månaden. Problemet är att numren i tabellens första rad inte ska börja från den första cellen.

Det är i allmänhet uppenbart. Det som inte är uppenbart är från vilken cell exakt man behöver börja. Låt oss fundera.

Antag att veckan börjar på måndag, och det är nolldagen. I detta fall motsvarar veckodagsnumret för den första dagen i månaden antalet tomma celler före den. Till exempel, torsdag kommer att ha nummer 3 och före den kommer det att vara 3 tomma celler.

Ett liknande problem väntar oss i slutet av tabellen. Där behöver man också lämna tomma celler efter sista numret i månaden. I detta fall kommer antalet tomma celler att vara lika med sex, från vilket man måste subtrahera veckodagsnumret för sista dagen i månaden.

Låt oss nu fundera på hur vi ska skapa vår tabell. Det mest bekväma är uppenbarligen att ha en tvådimensionell array, där varje subarray innehåller 7 element (= antalet dagar i veckan). Samtidigt ska en del element i den första och sista subarrayen vara tomma.

Handlingsalgoritm

Vi skapar en funktion som gör en array med nummer från 1 till sista dagen i månaden. Sedan skapar vi en funktion som lägger till ett nödvändigt antal tomma element i början av arrayen. En liknande funktion ska lägga till tomma element i slutet av arrayen.

Efter detta kommer vi att ha en endimensionell array med ett antal element som är en multipel av 7. Vi omvandlar denna array till en tvådimensionell med 7 element per subarray.

Sedan tar vi denna tvådimensionella array, itererar genom den med loopar och skapar vår tabell.

Vi kommer att utföra denna handlingsalgoritm steg för steg i de följande lektionerna.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa