⊗jsPrCndTD 53 of 62 menu

Diskusjon av implementering av kalender i JavaScript

Vår kalender er en tabell med tall fra 1 til den siste dagen i måneden. Problemet er at tallene i tabellen i den første rekken ikke skal starte fra den første cellen.

Dette er generelt opplagt. Det som ikke er opplagt er hvilken celle det skal startes fra. La oss tenke gjennom dette.

Anta at uken starter med mandag, og det er dag null. I dette tilfellet tilsvarer ukedagsnummeret for den første dagen i måneden antall tomme celler foran den. For eksempel vil torsdag ha nummer 3 og foran den vil det være 3 tomme celler.

Et tilsvarende problem venter oss på slutten av tabellen. Der må det også være tomme celler etter det siste tallet i måneden. I dette tilfellet vil antall tomme celler være lik seks, minus ukedagsnummeret for den siste dagen i måneden.

La oss nå tenke på hvordan vi skal danne tabellen vår. Det mest praktiske er å ha en todimensjonal matrise, hvor hver delmatrise inneholder 7 elementer (= antall dager i uken). Samtidig må en del av elementene i den første og siste delmatrisen være tomme.

Handlingsalgoritme

La oss lage en funksjon som lager en matrise med tall fra 1 til den siste dagen i måneden. Deretter lager vi en funksjon som legger til det nødvendige antallet tomme elementer i begynnelsen av matrisen. En tilsvarende funksjon skal legge til tomme elementer på slutten av matrisen.

Etter dette vil vi ha en endimensjonal matrise med et antall elementer som er delelig på 7. Vi konverterer denne matrisen til en todimensjonal med 7 elementer i hver delmatrise.

Deretter tar vi denne todimensjonale matrisen, itererer gjennom den med løkker og danner tabellen vår.

Vi vil utføre denne handlingsalgoritmen trinnvis i de følgende leksjonene.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis