kembali ke pelajaran

Buat kalender

Tulis fungsi createCalendar(elem, year, month).

Panggilan tersebut harus membuat kalender untuk tahun/bulan yang diberikan dan menempatkannya di dalam elem.

Kalender tersebut harus berupa tabel, di mana satu minggu adalah <tr>, dan satu hari adalah <td>. Puncak tabel harus berupa <th> dengan nama hari dalam seminggu: hari pertama harus Senin, dan seterusnya hingga Minggu.

Sebagai contoh, createCalendar(cal, 2012, 9) harus menghasilkan kalender berikut dalam elemen cal:

P.S. Untuk tugas ini, cukup menghasilkan kalender; belum perlu dapat diklik.

Buka sandbox untuk tugas tersebut.

Kita akan membuat tabel sebagai string: “

”, dan kemudian menetapkannya ke innerHTML.

Algoritma:

  1. Buat header tabel dengan dan nama-nama hari.
  2. Buat objek tanggal d = new Date(year, month-1). Itu adalah hari pertama dari month (mengingat bahwa bulan dalam JavaScript dimulai dari 0, bukan 1).
  3. Beberapa sel pertama hingga hari pertama bulan d.getDay() mungkin kosong. Mari isi mereka dengan .
  4. Tingkatkan tanggal di d: d.setDate(d.getDate()+1). Jika d.getMonth() belum bulan berikutnya, tambahkan sel <td> baru ke dalam kalender. Jika itu hari Minggu, tambahkan baris baru “</tr><tr>”.
  5. Jika bulan telah selesai, tetapi baris tabel belum penuh, tambahkan <td> kosong ke dalamnya, untuk membuatnya persegi.

Buka solusi di kotak pasir.