]> gitweb.hhaalo.de Git - calender.git/commitdiff
change: create header with Month object
authorBastian Dehn <hhaalo@arcor.de>
Wed, 15 Dec 2021 19:36:54 +0000 (20:36 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Wed, 15 Dec 2021 19:36:54 +0000 (20:36 +0100)
cal.js

diff --git a/cal.js b/cal.js
index 7465e67f27c74b0d40e687ad5d847a9b18a43c9c..51be8b38855b93d9ecaf30fc35960111b3d35a22 100644 (file)
--- 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()