From a06e5b52968a9fa897ab4626e78220c1b71575ab Mon Sep 17 00:00:00 2001 From: Daniel Spittank Date: Wed, 17 Nov 2021 22:59:04 +0100 Subject: [PATCH] =?UTF-8?q?Funktion=20zum=20Ausblenden=20abgelaufener=20Ve?= =?UTF-8?q?rtretungen=20hinzugef=C3=BCgt.=20Dazu=20Zeitraster.js=20zum=20R?= =?UTF-8?q?echnen=20mit=20Schulstunden=20implementiert.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Zeitraster.js | 148 +++++++++++++++++++++++++++++ src/components/Vertretungsplan.vue | 33 +++++-- 2 files changed, 173 insertions(+), 8 deletions(-) create mode 100644 src/Zeitraster.js diff --git a/src/Zeitraster.js b/src/Zeitraster.js new file mode 100644 index 0000000..6ac2210 --- /dev/null +++ b/src/Zeitraster.js @@ -0,0 +1,148 @@ +export class Zeitraum { + constructor (beginnStunde, beginnMinute, endeStunde, endeMinute) { + this.beginn = new Date("1970-01-01T00:00:00.000") + this.ende = new Date("1970-01-01T00:00:00.000") + this.beginn.setHours(parseInt(beginnStunde)) + this.beginn.setMinutes(parseInt(beginnMinute)) + this.ende.setHours(parseInt(endeStunde)) + this.ende.setMinutes(parseInt(endeMinute)) + } +} + +export default class Zeitraster { + constructor (stunden, pausen) { + if (typeof stunden !== "undefined" && typeof pausen !== "undefined") { + this.stunden = stunden + this.pausen = pausen + } else { + this.stunden = [ + new Zeitraum(7,50,8,35), + new Zeitraum(8,35,9,20), + new Zeitraum(9,40,10,25), + new Zeitraum(10,25,11,10), + new Zeitraum(11,30,12,15), + new Zeitraum(12,20,13,5), + new Zeitraum(13,10,13,55), + new Zeitraum(14,0,14,45), + new Zeitraum(14,50,15,35), + new Zeitraum(15,40,16,25), + ] + this.pausen = [ + new Zeitraum(9,20,9,40), + new Zeitraum(11,10,11,30), + new Zeitraum(12,15,12,20), + new Zeitraum(13,5,14,0), + new Zeitraum(14,45,14,50), + new Zeitraum(15,35,15,40), + ] + } + } + + gibStunden() { + return this.stunden + } + + gibPausen() { + return this.pausen + } + + gibStunde(zeit) { + if (typeof zeit === "undefined") zeit = new Date() + + // Zeit normalisieren + zeit.setDate(1) + zeit.setMonth(0) + zeit.setYear(1970) + + var aktuelleStunde = 0 + this.stunden.forEach((stunde, index) => { + // Zeit überprüfen + if (stunde.beginn <= zeit && stunde.ende > zeit) { + aktuelleStunde = index + 1 + } + }) + return aktuelleStunde + } + + gibVergangeneStunden(zeit) { + if (typeof zeit === "undefined") zeit = new Date() + + // Zeit normalisieren + zeit.setDate(1) + zeit.setMonth(0) + zeit.setYear(1970) + + var vergangeneStunden = 0 + this.stunden.forEach((stunde, index) => { + // Zeit überprüfen + if (stunde.ende <= zeit) { + vergangeneStunden = index + 1 + } + }) + return vergangeneStunden + } + + gibStundeRestzeit(zeit) { + if (typeof zeit === "undefined") zeit = new Date() + + // Zeit normalisieren + zeit.setDate(1) + zeit.setMonth(0) + zeit.setYear(1970) + + var restzeit = 0 + this.stunden.forEach(stunde => { + // Zeit überprüfen + if (stunde.beginn <= zeit && stunde.ende > zeit) { + const rzDate = (new Date(stunde.ende - zeit)) + restzeit = rzDate.getUTCHours() * 360000 + rzDate.getMinutes() * 60000 + rzDate.getSeconds() * 1000 + rzDate.getMilliseconds(); + } + }) + return restzeit + } + + gibPauseRestzeit(zeit) { + if (typeof zeit === 'undefined') zeit = new Date() + + // Zeit normalisieren + zeit.setDate(1) + zeit.setMonth(0) + zeit.setYear(1970) + + var restzeit = 0 + this.pausen.forEach(pause => { + // Zeit überprüfen + if (pause.beginn <= zeit && pause.ende > zeit) { + const rzDate = (new Date(pause.ende - zeit)) + restzeit = rzDate.getUTCHours() * 360000 + rzDate.getMinutes() * 60000 + rzDate.getSeconds() * 1000 + rzDate.getMilliseconds(); + } + }) + return restzeit + } + + setzeStunden(stunden) { + this.stunden = stunden + } + + setzePausen(pausen) { + this.pausen = pausen + } + + istPause(zeit) { + if (typeof zeit === "undefined") zeit = new Date() + + // Zeit normalisieren + zeit.setDate(1) + zeit.setMonth(0) + zeit.setYear(1970) + + var jetztPause = false + this.pausen.forEach(pause => { + // Zeit überprüfen + if (pause.beginn <= zeit && pause.ende > zeit) jetztPause = true + }) + return jetztPause + } + +} + \ No newline at end of file diff --git a/src/components/Vertretungsplan.vue b/src/components/Vertretungsplan.vue index 03211c6..8f841d3 100644 --- a/src/components/Vertretungsplan.vue +++ b/src/components/Vertretungsplan.vue @@ -20,18 +20,18 @@ - Vertretungsplan für den -   + Vertretungsplan für den + @@ -111,6 +117,7 @@