Crea un calendario
Escribe una función createCalendar(elem, year, month)
.
Su llamado debe crear un calendario para el año y mes dados y ponerlo dentro de elem
.
El calendario debe ser una tabla, donde una semana es <tr>
, y un día es<td>
. Los encabezados de la tabla deben ser <th>
con los nombres de los días de la semana: el primer día debe ser “lunes” y así hasta “domingo”.
Por ejemplo, createCalendar(cal, 2012, 9)
debe generar en el elemento cal
el siguiente calendario:
P.S. Para esta tarea es suficiente generar el calendario, no necesita aún ser cliqueable.
Crearemos la tabla como un string: "<table>...</table>"
, y entonces lo asignamos a innerHTML
.
El algoritmo:
- Crea el encabezado de la tabla con
<th>
y los nombres de los días de la semana. - Crea el objeto date
d = new Date(year, month-1)
. Este es el primer día del mesmonth
(tomando en cuenta que los meses en JavaScript comienzan en0
, no1
). - Las primeras celdas hasta el primer día del mes
d.getDay()
podrían estar vacías. Las completamos con<td></td>
. - Incrementa el día en
d
:d.setDate(d.getDate()+1)
. Sid.getMonth()
no es aún del mes siguiente, agregamos una nueva celda<td>
al calendario. Si es domingo, agregamos un nueva línea“</tr><tr>”
. - Si el mes terminó, pero la fila no está completa, le agregamos
<td>
vacíos para hacerlo rectangular.