tilbage til lektionen
Dette materiale er kun tilgængeligt på følgende sprog: English, Español, Français, Italiano, 日本語, 한국어, Русский, Türkçe, Українська, Oʻzbek, 简体中文. Hjælp os med at oversætte til Dansk.

Opret en kalender

vigtighed: 4

Skriv funktionen createCalendar(elem, year, month).

Kaldet skal oprette en kalender for det givne år/måned og putte den indeni elem.

Kalenderen skal være en tabel, hvor en uge er <tr>, og en dag er <td>. Den øverste del af tabellen skal være <th> med navne på ugedage: den første dag skal være mandag, og så videre til søndag.

For eksempel, createCalendar(cal, 2012, 9) skal generere følgende kalender i element cal:

P.S. Det er nok at generere kalenderen, den skal ikke være klikbar endnu.

Åbn en sandbox til opgaven.

Vi opretter tabellen som en streng: "<table>...</table>", og tilknytter den til innerHTML.

Algoritmen er som følger:

  1. Opret en tabelhoved med <th> og navne på ugedage.
  2. Opret datoobjektet d = new Date(year, month-1). Det er den første dag i month (med hensyn til at måneder i JavaScript starter fra 0, ikke 1).
  3. De første få celler indtil den første dag i måneden d.getDay() kan være tomme. Lad os fylde dem med <td></td>.
  4. Øg dagen i d: d.setDate(d.getDate()+1). Hvis d.getMonth() ikke er den næste måned, så tilføj den nye celle <td> til kalenderen. Hvis det er en søndag, så tilføj en ny linje “</tr><tr>”.
  5. Hvis måneden er slut, men tabelrækken ikke er fuld, tilføj tomme <td> til den, for at gøre den kvadratisk.

Åbn løsningen i en sandbox.