创建日历
重要性:4
编写一个函数 createCalendar(elem, year, month)
。
该调用应该为给定的年份/月份创建一个日历,并将其放入 elem
中。
日历应该是一个表格,其中一周是 <tr>
,一天是 <td>
。表格顶部应该是 <th>
,包含星期名称:第一天应该是星期一,依此类推,直到星期日。
例如,createCalendar(cal, 2012, 9)
应该在元素 cal
中生成以下日历
附注:对于此任务,只需生成日历即可,无需使其可点击。
我们将创建一个表格作为字符串:"<table>...</table>"
,然后将其分配给 innerHTML
。
算法
- 使用
<th>
和星期名称创建表格标题。 - 创建日期对象
d = new Date(year, month-1)
。这是month
的第一天(考虑到 JavaScript 中的月份从0
开始,而不是1
)。 - 第一个月
d.getDay()
之前的一些单元格可能是空的。让我们用<td></td>
填充它们。 - 在
d
中增加一天:d.setDate(d.getDate()+1)
。如果d.getMonth()
尚未进入下一个月,则将新的单元格<td>
添加到日历中。如果这是星期日,则添加一个换行符“</tr><tr>”
。 - 如果月份已结束,但表格行尚未填满,则在其中添加空的
<td>
,使其成为正方形。