Derse geri dön

Create a calendar

önem: 4

Bir fonksiyon yazın: createCalendar(elem, year, month).

Çağrı, belirtilen yıl/ay için bir takvim oluşturmalıdır ve onu elem içine koymalıdır.

Takvim, bir haftanın <tr> ve bir günün <td> olduğu bir tablo olmalıdır. Üst tablo hafta içi isimleriyle <th> olmalıdır: ilk gün Pazartesi olmalı, ve Pazar gününe kadar böyle devam etmeli.

Örneğin, createCalendar(cal, 2012, 9), element calda aşağidaki takvimi oluşturmalıdır.

Not(P.S.-PostScript) Bu görev için takvimi oluşturmak yeterlidir, henüz tıklanabilir olmamalıdır.

Görevler için korunaklı alan aç.

Tabloyu bir string olarak oluşturacağız: "<table>...</table>" ve ardından innerHTML'ye atayacağız.

Algoritma:

  1. Tablo başlığını ve hafta içi gün isimlerini <th> ile oluşturun.
  2. Tarih nesnesini ile d = new Date(year, month-1) oluşturun. Bu, ayın ilk günüdür. (JavaScript’te ayların 1den değil, 0dan başladığını hesaba katarak)
  3. Ayın ilk gününe kadar ilk birkaç hücre d.getDay() boş olabilir. Onları <td></td> ile dolduralım.
  4. d: d.setDate(d.getDate()+1) içindeki günü artırın. Eğer d.getMonth() henüz gelecek ay değilse, ondan sonra takvime yeni hücre ekle. Eğer bu bir Pazar günüyse, yeni bir satır “</tr><tr>”'i ekleyin.
  5. Eğer ay bitmişse, ama tablo satırı henüz dolu değilse, onu kare yapmak için içine boş <td> ekleyin.

Çözümü korunaklı alanda aç.