Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Maik Koenig Newsgroups: de.comp.lang.javascript Subject: Arbeitszeiten in JavaScript Date: Sat, 16 Mar 2024 22:03:03 +0100 Lines: 51 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net vOo3SEleeNQMoLU6GiifbA6nOJxPw/lTzWxKXck77q5qPUIyat Cancel-Lock: sha1:26uslO9CpqwuHD4vRBAAPJLfJgI= sha256:qwW1hSVJ4dOR9YP4fuqokQ95W5XIeQfdUC+kwtiEzGM= User-Agent: Mozilla Thunderbird Xref: csiph.com de.comp.lang.javascript:5460 Servus! Problemstellung: Es gibt einen Auftrag der unterschiedlich lange dauert und zu unterschiedlichen Zeitpunkten beginnt. Während bestimmter Zeiten darf der Auftrag nicht ausgeführt werden, die Ablaufdauer pausiert dann also und diese "Pausenzeit" verlängert die eigentliche Laufzeit des Auftrags. Beispiel: Für laute Arbeiten wurde eine "reale" Dauer von 47 Stunden. geschätzt. Das soll im Dreischichtbetrieb passieren, wobei die jeweiligen Schichten feste Pausenzeiten haben in denen natürlich keine Arbeit gemacht werden kann. Wie zum Henker kann man jetzt auf die Schnelle mit JavaScript ausrechnen wann die Arbeit vorraussichtlich abgeschlossen ist? Momentan behelfe ich mir ziemlich umständlich: Ich stelle erstmal fest, in welcher Schicht ich mich befinde indem ich die "Jetzt-Zeit" mit den jeweiligen Start- und Endzeiten der drei Schichten vergleiche. Dann gucke ich ob ich gerade mitten in einer Pause bin. Dann berechne ich die restliche Arbeitszeit bis zur nächsten Unterbrechung. Nach einem kurzen Check ob die Zeit reichen würde um den Job abzuschliessen ziehe ich die Zeit von der Gesamtarbeitszeit ab und überspringe die Pausenzeit. Dann wieder gucken ob die Gesamtarbeitszeit bis zur nächsten Unterbrechung ausreicht um den Job abzuschliessen und so weiter, bis ich dann irgendwann einen vermutlichen Termin für den Abschluss der Arbeiten habe. Es funktioniert, aber das sind verdammt viele Zeilen Code um am Ende "nur" einen Zeitpunkt zu bekommen. Zumal das Rechnen mit Stunden und Minuten in JavaScript eher suboptimal ist, ich habe Date() inzwischen wirklich hassen gelernt. Ich bezweifel dass jemand mit normalem JavaScript eine schnellere Methode kennt, aber kennt vielleicht jemand eine Bibliothekt mit der sowas flotter geht? Im Grunde gehts da ja quasi um eine Kalender-Anwendung: Ein Termin soll X Stunden Gesamtzeit haben aber zu verschiedenen Zeiten wird der Termin pausiert. Wenn er an einem bestimmten Datum zu einer bestimmten Uhrzeit beginnt, wann ist der Termin abgeschlossen? Im Grunde bräuchte es da eine Zeitverwaltung in der man bestimmte Zeiten "sperren" kann um bei einer vorgegebenen Laufzeit einen Endtermin zu bekommen. Kennt jemand sowas oder muss ich mit meinem hässlichen Konstrukt einfach leben? Greetz, MK -- Kopp-Verlag-Gläubige, Religionsdeppen, rechte Vollidioten und ähnlicher Bio-Abfall werden ohne Hinweis ignoriert! triple-negatives NST - das Leben ist ein Arschloch