Crea un calendario
Scrivi una funzione createCalendar(elem, year, month)
.
La sua chiamata dovrebbe creare un calendario con il dato anno/mese e metterlo dentro a elem
.
Il calendario dovrebbe essere una tabella dove una settimana è <tr>
e un giorno è <td>
. La cima della tabella dovrebbe essere un <th>
con i nomi dei giorni: il primo giorno dovrebbe essere lunedì e così via fino a domenica.
Ad esempio, createCalendar(cal, 2012, 9)
dovrebbe generare un elemento cal
con il seguente calendario:
P.S. Per questa task è sufficiente creare il calendario, non è necessario che sia cliccabile.
Creeremo una tabella come stringa, "<table>...</table>"
, e poi la assegneremo a innerHTML
.
L’algoritmo:
- Crea il header della tabella con
<th>
e i nomi dei giorni. - Crea l’oggetto data
d = new Date(year, month-1)
. Questo è il primo giorno dimonth
(prendendo in considerazione che in Javascript i mesi partono da0
, non da1
). - Le prime celle fino al primo del mese
d.getDay()
sono vuote. Riempiamole con<td></td>
. - Aumentiamo il giorno in
d
:d.setDate(d.getDate()+1)
. Sed.getMonth()
non è ancora il mese successivo, aggiungi la nuova cella<td>
al calendario. Se questo è una domenica, aggiungi una nuova linea“</tr><tr>”
. - Se il mese è finito ma la fila della tabella non è ancora piena, aggiungi un
<td>
vuoto in modo da renderla rettangolare.