From 24a44ccca32203c5768f5bcc190d444969905bb6 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Wed, 15 Dec 2021 20:36:54 +0100 Subject: [PATCH] change: create header with Month object --- cal.js | 72 +++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 44 insertions(+), 28 deletions(-) diff --git a/cal.js b/cal.js index 7465e67..51be8b3 100644 --- a/cal.js +++ b/cal.js @@ -1,10 +1,38 @@ -function addDaysOfMonth(tr, days) +class Month { - let th = null; - for (let i = 1; i < days + 1; i++) { - th = document.createElement("th"); - th.innerText = i; - tr.appendChild(th); + constructor(year, month) { + let date = new Date(year, month, 0) + this.year = year; + this.number = date.getMonth(); + this.days = date.getDate(); + const monthnames = [ "Januar", "Februar", "März", "April", + "Mai", "Juni", "Juli", "August", "September", "Oktober", + "November", "Dezember" ]; + this.name = monthnames[this.number]; + } + + createMonthHeader() { + let month = document.createElement("th"); + let span = document.createAttribute("colspan"); + + month.innerText = this.name; + span.value = this.days + + month.setAttributeNode(span); + + return month; + } + + createDaysHeader(tr) { + let th = null; + + for (let i = 1; i < this.days + 1; i++) { + th = document.createElement("th"); + th.innerText = i; + tr.appendChild(th); + } + + return th; } } @@ -16,9 +44,9 @@ function addMonthDaysHeader() monthdaysheader.classList.add("monthday"); let date = new Date(); - for (let i = 1; i < 13; i++) { - date.setMonth(i, 0); - addDaysOfMonth(monthdaysheader, date.getDate()); + for (let i = 0; i < 12; i++) { + let month = new Month(date.getYear(), i); + month.createDaysHeader(monthdaysheader); } return monthdaysheader; @@ -26,29 +54,17 @@ function addMonthDaysHeader() function addMonthHeader() { - let monthheader = document.createElement("tr"); - monthheader.classList.add("row"); - monthheader.classList.add("month"); - const monthnames = [ "Januar", "Februar", "März", "April", "Mai", "Juni", - "Juli", "August", "September", "Oktober", "November", - "Dezember" ]; let date = new Date(); - let month = null; - let span = null; + let header = document.createElement("tr"); + header.classList.add("row"); + header.classList.add("month"); - for (let i = 1; i < 13; i++) { - month = document.createElement("th"); - span = document.createAttribute("colspan"); - - month.innerText = monthnames[i - 1]; - date.setMonth(i, 0); - span.value = date.getDate(); - - month.setAttributeNode(span); - monthheader.appendChild(month); + for (let i = 0; i < 12; i++) { + let month = new Month(date.getYear(), i); + header.appendChild(month.createMonthHeader()); } - return monthheader; + return header; } function calender() -- 2.39.5