Create a calendar
pentingnya: 4
Write a function createCalendar(elem, year, month)
.
The call should create a calendar for the given year/month and put it inside elem
.
The calendar should be a table, where a week is <tr>
, and a day is <td>
. The table top should be <th>
with weekday names: the first day should be Monday, and so on till Sunday.
For instance, createCalendar(cal, 2012, 9)
should generate in element cal
the following calendar:
P.S. For this task it???s enough to generate the calendar, should not yet be clickable.
We???ll create the table as a string: "<table>...</table>"
, and then assign it to innerHTML
.
The algorithm:
- Create the table header with
<th>
and weekday names. - Create the date object
d = new Date(year, month-1)
. That???s the first day ofmonth
(taking into account that months in JavaScript start from0
, not1
). - First few cells till the first day of the month
d.getDay()
may be empty. Let???s fill them in with<td></td>
. - Increase the day in
d
:d.setDate(d.getDate()+1)
. Ifd.getMonth()
is not yet the next month, then add the new cell<td>
to the calendar. If that???s a Sunday, then add a newline???</tr><tr>???
. - If the month has finished, but the table row is not yet full, add empty
<td>
into it, to make it square.