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.