⊗jsPrCndTD 53 of 62 menu

Diskussion af implementering af kalender i JavaScript

Vores kalender er en tabel med tal fra 1 til den sidste dag i måneden. Problemet er, at tallene i tabellen i den første række ikke skal starte fra den første celle.

Dette er generelt indlysende. Hvad der ikke er indlysende, er fra hvilken celle den skal starte. Lad os tænke over det.

Lad ugen starte på mandag, og lad den være dag nul. I dette tilfælde svarer ugedagsnummeret for den første dag i måneden til antallet af tomme celler foran den. For eksempel, torsdag vil have nummeret 3 og foran den vil der være 3 tomme celler.

Et lignende problem venter os i slutningen af tabellen. Der skal også efterlades tomme celler efter det sidste tal i måneden. I dette tilfælde vil antallet af tomme celler være lig med seks, hvorfra man skal trække ugedagsnummeret for den sidste dag i måneden fra.

Lad os nu tænke på, hvordan vi vil danne vores tabel. Det mest praktiske er selvfølgelig at have et todimensionelt array, hvor hvert underarray indeholder 7 elementer (= antallet af dage i ugen). Samtidig skal en del af elementerne i de første og sidste underarrays være tomme.

Handlingsalgoritme

Lad os lave en funktion, der laver et array med tal fra 1 til den sidste dag i måneden. Derefter laver vi en funktion, der tilføjer det nødvendige antal tomme elementer til starten af arrayet. En tilsvarende funktion skal tilføje tomme elementer til slutningen af arrayet.

Efter dette vil vi have et endimensionelt array med et antal elementer, der er et multiplum af 7. Vi omdanner dette array til et todimensionelt array med 7 elementer i hvert underarray.

Derefter tager vi dette todimensionelle array, gennemgår det med loops og danner vores tabel.

Denne handlingsalgoritme vil vi trin for trin gennemføre i de følgende lektioner.

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