返回课程

创建日历

重要性:4

编写一个函数 createCalendar(elem, year, month)

该调用应该为给定的年份/月份创建一个日历,并将其放入 elem 中。

日历应该是一个表格,其中一周是 <tr>,一天是 <td>。表格顶部应该是 <th>,包含星期名称:第一天应该是星期一,依此类推,直到星期日。

例如,createCalendar(cal, 2012, 9) 应该在元素 cal 中生成以下日历

附注:对于此任务,只需生成日历即可,无需使其可点击。

打开一个沙箱进行此任务。

我们将创建一个表格作为字符串:"<table>...</table>",然后将其分配给 innerHTML

算法

  1. 使用 <th> 和星期名称创建表格标题。
  2. 创建日期对象 d = new Date(year, month-1)。这是 month 的第一天(考虑到 JavaScript 中的月份从 0 开始,而不是 1)。
  3. 第一个月 d.getDay() 之前的一些单元格可能是空的。让我们用 <td></td> 填充它们。
  4. d 中增加一天:d.setDate(d.getDate()+1)。如果 d.getMonth() 尚未进入下一个月,则将新的单元格 <td> 添加到日历中。如果这是星期日,则添加一个换行符 “</tr><tr>”
  5. 如果月份已结束,但表格行尚未填满,则在其中添加空的 <td>,使其成为正方形。

在沙箱中打开解决方案。