カレンダーを作成
importance: 4
関数createCalendar(elem, year, month)
を作成してください。
この関数の呼び出しは、指定された年/月に応じたカレンダーを作成し、それをelem
内部に配置します。
カレンダーはテーブルで表され、1週間は<tr>
、1日は<td>
で示されます。テーブルの一番上は曜日名を含む<th>
とする必要があり、最初の曜日は月曜日以降、日曜日まで続きます。
例えば、createCalendar(cal, 2012, 9)
は要素cal
に次のようなカレンダーを作成します
追伸 このタスクでは、カレンダーを作成するだけで、まだクリックできる必要はありません。
文字列としてテーブルを作成します: "<table>...</table>"
、その後 innerHTML
に割り当てます。
アルゴリズム
<th>
と曜日名を使用したテーブルヘッダーを作成します。d = new Date(year, month-1)
の日付オブジェクトを作成します。これはmonth
の1日目です(JavaScriptの月は0
から始まり、1
から始まらないことを考慮しています)。- 1日目
d.getDay()
までの最初の数セルの空きを埋めます。これらは<td></td>
で埋めます。 d
の日付を増やします:d.setDate(d.getDate()+1)
。d.getMonth()
がまだ次の月でない場合、新しいセル<td>
をカレンダーに追加します。これが日曜日なら、改行“</tr><tr>”
を追加します。- 月が終わってもテーブルの行がまだ埋まっていない場合、それを正方形にするために空の
<td>
を追加します。