Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.javascript > #5460 > unrolled thread
| Started by | Maik Koenig <usenetspam@maikkoenig.de> |
|---|---|
| First post | 2024-03-16 22:03 +0100 |
| Last post | 2024-03-18 17:58 +0100 |
| Articles | 15 — 5 participants |
Back to article view | Back to de.comp.lang.javascript
Arbeitszeiten in JavaScript Maik Koenig <usenetspam@maikkoenig.de> - 2024-03-16 22:03 +0100
Re: Arbeitszeiten in JavaScript "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2024-03-16 23:21 +0100
Re: Arbeitszeiten in JavaScript Maik Koenig <usenetspam@maikkoenig.de> - 2024-03-17 08:12 +0100
Re: Arbeitszeiten in JavaScript Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2024-03-17 09:36 +0100
Re: Arbeitszeiten in JavaScript Maik Koenig <usenetspam@maikkoenig.de> - 2024-03-17 18:12 +0100
[OT] Eigenentwicklung vs. Produkt (war Re: Arbeitszeiten in JavaScript) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2024-03-18 06:36 +0100
Re: [OT] Eigenentwicklung vs. Produkt (war Re: Arbeitszeiten in JavaScript) Maik Koenig <usenetspam@maikkoenig.de> - 2024-03-18 07:56 +0100
Re: [OT] Eigenentwicklung vs. Produkt (war Re: Arbeitszeiten in JavaScript) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2024-03-19 06:47 +0100
Re: [OT] Eigenentwicklung vs. Produkt (war Re: Arbeitszeiten in JavaScript) "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2024-03-18 20:37 +0100
Re: Arbeitszeiten in JavaScript Stefan Reuther <stefan.news@arcor.de> - 2024-03-17 09:42 +0100
Re: Arbeitszeiten in JavaScript Maik Koenig <usenetspam@maikkoenig.de> - 2024-03-17 15:10 +0100
Re: Arbeitszeiten in JavaScript "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2024-03-17 16:42 +0100
Re: Arbeitszeiten in JavaScript Maik Koenig <usenetspam@maikkoenig.de> - 2024-03-17 18:33 +0100
Re: Arbeitszeiten in JavaScript Tim Landscheidt <tim@tim-landscheidt.de> - 2024-03-18 08:36 +0000
Re: Arbeitszeiten in JavaScript Stefan Reuther <stefan.news@arcor.de> - 2024-03-18 17:58 +0100
| From | Maik Koenig <usenetspam@maikkoenig.de> |
|---|---|
| Date | 2024-03-16 22:03 +0100 |
| Subject | Arbeitszeiten in JavaScript |
| Message-ID | <ut54un.io.1@mid.maikkoenig.de> |
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
[toc] | [next] | [standalone]
| From | "Peter J. Holzer" <hjp-usenet4@hjp.at> |
|---|---|
| Date | 2024-03-16 23:21 +0100 |
| Message-ID | <slrnuvc6qn.mcvb.hjp-usenet4@trintignant.hjp.at> |
| In reply to | #5460 |
On 2024-03-16 21:03, Maik Koenig <usenetspam@maikkoenig.de> wrote:
> 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.
[...]
> Wie zum Henker kann man jetzt auf die Schnelle mit JavaScript ausrechnen
> wann die Arbeit vorraussichtlich abgeschlossen ist?
Alles, was mit Zeitrechung zu tun hat, ist kompliziert. Wenn dann noch
organisatorische Randbedingungen wie Schicht- und Pausenzeiten,
Feiertage, etc. dazukommen, wird es noch komplizierter.
> 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.
Ich fürchte, es geht nicht besser.
> Zumal das Rechnen mit Stunden und Minuten in JavaScript eher
> suboptimal ist, ich habe Date() inzwischen wirklich hassen gelernt.
Das verstehe ich. JavaScript ist da wirklich nicht sehr komfortabel
(aber wo ist JavaScript schon komfortabel?). Python ist da schon besser
(aber auch zu simpel), am wenigsten schlecht dünkt mich PostgreSQL (aber
selbst als bekennender SQL-Fan will ich nicht ganze Applikationen in SQL
schreiben).
> 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:
Ja, aber mit sehr spezifischen Regeln. Eine gute Projektplanung sollte
das können, aber deren Zeitberechnung ist wahrscheinlich nicht aus dem
Gesamtpaket herauslösbar. Andererseits findet man auf npm alles, also
vielleicht auch das (wahrscheinlicher aber 3 Dutzend Pakete, die fast,
aber nicht genau das machen, was du brauchst).
hp
[toc] | [prev] | [next] | [standalone]
| From | Maik Koenig <usenetspam@maikkoenig.de> |
|---|---|
| Date | 2024-03-17 08:12 +0100 |
| Message-ID | <ut68le.bvk.1@mid.maikkoenig.de> |
| In reply to | #5461 |
Am 16.03.2024 um 23:21 schrieb Peter J. Holzer: > On 2024-03-16 21:03, Maik Koenig <usenetspam@maikkoenig.de> wrote: >> Es funktioniert, aber das sind verdammt viele Zeilen Code um am Ende >> "nur" einen Zeitpunkt zu bekommen. > > Ich fürchte, es geht nicht besser. Das hatte ich mir schon gedacht ;( Trotzdem danke. 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
[toc] | [prev] | [next] | [standalone]
| From | Janis Papanagnou <janis_papanagnou+ng@hotmail.com> |
|---|---|
| Date | 2024-03-17 09:36 +0100 |
| Message-ID | <ut6a36$3e90k$1@dont-email.me> |
| In reply to | #5460 |
On 16.03.2024 22:03, Maik Koenig wrote: > Servus! Griaß di! > > Problemstellung: Es gibt einen Auftrag der unterschiedlich lange dauert > und zu unterschiedlichen Zeitpunkten beginnt. [...] (Das macht man normalerweise mit Projektmanagement(PM)-Werkzeugen.[*]) > > Wie zum Henker kann man jetzt auf die Schnelle mit JavaScript ausrechnen > wann die Arbeit vorraussichtlich abgeschlossen ist? "voraussichtlich"? - Wenn es nicht um exakte Zeiten geht könnte man das mit Aufwand/Ressourcen/Nettozeit(also abzgl. Pausen) bestimmen. > > Momentan behelfe ich mir ziemlich umständlich: [...] > > 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. Wenn du viel mit Zeiten operierst und das schlechte Interface von JS nicht magst, dann würde ich eine eigene Zeit/Datum-Funktionsbibliothek schreiben, die das JS kapselt, und sinnvollere Funktionen anbietet. (Es muss keine komplette Bibliothek sein, nur die von dir benötigten Funktionen in einer geeigneteren Form anbieten.) > > 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: Mehr als das; es geht um PM (s.o.). Zeit (Kalender) ist nur ein Faktor. > > 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 > Pfiat di, Janis [*] z.B. MS Project (oder Besseres), je nach Plattform. Falls du Linux benutzt, gibt es freie Werkzeuge.
[toc] | [prev] | [next] | [standalone]
| From | Maik Koenig <usenetspam@maikkoenig.de> |
|---|---|
| Date | 2024-03-17 18:12 +0100 |
| Message-ID | <ut7bqv.73k.1@mid.maikkoenig.de> |
| In reply to | #5463 |
Am 17.03.2024 um 09:36 schrieb Janis Papanagnou: > On 16.03.2024 22:03, Maik Koenig wrote: >> Servus! > > Griaß di! > >> >> Problemstellung: Es gibt einen Auftrag der unterschiedlich lange dauert >> und zu unterschiedlichen Zeitpunkten beginnt. [...] > > (Das macht man normalerweise mit Projektmanagement(PM)-Werkzeugen.[*]) Ja. Normaler Weise kann man sich solche Software einfach installieren und fertig. Aber nur wenn die IT-Abteilung des Arbeitgebers da mitspielt was sie hier nicht macht, was ich in dem speziellen Fall nachvollziehen kann. Man kann die Rechnung "von Hand" machen, das ist nicht überaus kompliziert nur lästig und unnötig zeitraubend. Es ist halt einfacher wenn man ein Formular hat in welches man die Rahmenbedingungen eingibt und das Ergebnis kommt per Mausklick. Ich habe die Rahmenbedingungen drastisch vereinfacht dargestellt da sie hier schlicht nicht von Bedeutung sind, aber alleine die Berechnung der Dauer ohne Unterbrechungen ist schon umständlich und kann mittels Taschenrechner schonmal locker 30 Minuten dauern. Das kann eine PM-Software bestimmt auch, aber wozu für diese eine Aufgabe viel Geld ausgeben wenn es ein simples HTML-Formular auch tut? Meine Lösung funktioniert ja, sie ist nur vergleichsweise umständlich programmiert weil mir schlicht die Erfahrung und das Wissen für Vereinfachungen fehlt. Der Vorteil meiner Lösung ist halt, dass sie überall funktioniert. Jedes Smartphone kann das HTML-Dokument öffnen und die Berechnung vornehmen. 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
[toc] | [prev] | [next] | [standalone]
| From | Janis Papanagnou <janis_papanagnou+ng@hotmail.com> |
|---|---|
| Date | 2024-03-18 06:36 +0100 |
| Subject | [OT] Eigenentwicklung vs. Produkt (war Re: Arbeitszeiten in JavaScript) |
| Message-ID | <ut8jti$15l3$1@dont-email.me> |
| In reply to | #5467 |
On 17.03.2024 18:12, Maik Koenig wrote: > Am 17.03.2024 um 09:36 schrieb Janis Papanagnou: >> On 16.03.2024 22:03, Maik Koenig wrote: >>> >>> Problemstellung: Es gibt einen Auftrag der unterschiedlich lange dauert >>> und zu unterschiedlichen Zeitpunkten beginnt. [...] >> >> (Das macht man normalerweise mit Projektmanagement(PM)-Werkzeugen.[*]) > > Ja. Normaler Weise kann man sich solche Software einfach installieren > und fertig. Aber nur wenn die IT-Abteilung des Arbeitgebers da mitspielt > was sie hier nicht macht, was ich in dem speziellen Fall nachvollziehen > kann. Man kann die Rechnung "von Hand" machen, das ist nicht überaus > kompliziert nur lästig und unnötig zeitraubend. Es ist eine Entscheidung, die das Unternehmen machen muss. Wenn die Leitungsebene das nicht sieht oder meint, man braucht das nicht, dann kann das im spezifischen Unternehmenskontext richtig oder falsch sein. > > Es ist halt einfacher wenn man ein Formular hat in welches man die > Rahmenbedingungen eingibt und das Ergebnis kommt per Mausklick. Genau. Es ist allerdings selten eine richtige Entscheidung, so etwas selbst "neu zu erfinden", anstatt ein bestehendes Produkt zu nutzen, bei dem man mit einem Minimum an Qualität und Funktionsumfang rechnen kann. > Ich habe > die Rahmenbedingungen drastisch vereinfacht dargestellt da sie hier > schlicht nicht von Bedeutung sind, aber alleine die Berechnung der Dauer > ohne Unterbrechungen ist schon umständlich und kann mittels > Taschenrechner schonmal locker 30 Minuten dauern. Das kann eine > PM-Software bestimmt auch, aber wozu für diese eine Aufgabe viel Geld > ausgeben wenn es ein simples HTML-Formular auch tut? Das ist genau das, was ein Business Case ermitteln sollte, z.B. ob sich eine Eigenentwicklung rechnet (Entwicklung, Fehlersuche, etc.). Und wie ich schon sagte gibt es solche Tools auch frei verfügbar, muss also nicht "viel Geld" kosten. Allerdings sind in beiden Fällen die Betriebs- und Wartungskosten der Software zu berücksichtigen. > > Meine Lösung funktioniert ja, sie ist nur vergleichsweise umständlich > programmiert weil mir schlicht die Erfahrung und das Wissen für > Vereinfachungen fehlt. Erfahrungsgemäß, wenn man solch eine Lösung für ein Funktionsdetail mal realisiert oder angeschafft hat, steigen in Folge die Bedürfnisse, was man in dieser Richtung noch alles machen könnte. Irgendwann wird sich dann die Frage stellen, ob man das eigene Tool immer weiter entwickeln kann und will (Zeitaufwand/Kosten/Zuverlässigkeit) oder doch einfach ein bestehendes, direkt einsetzbares Werkzeug anschafft, das das gesamte Funktionsfeld abdeckt. > > Der Vorteil meiner Lösung ist halt, dass sie überall funktioniert. Jedes > Smartphone kann das HTML-Dokument öffnen und die Berechnung vornehmen. Ist das denn eine Funktion, die "jedermann" nutzen können soll? Ich hatte den Eindruck, es soll zur Management-Planung eingesetzt werden, also von einem Planungsmenschen (einen Projektmanager) durchgeführt. Viel Glück! Servus, Janis
[toc] | [prev] | [next] | [standalone]
| From | Maik Koenig <usenetspam@maikkoenig.de> |
|---|---|
| Date | 2024-03-18 07:56 +0100 |
| Subject | Re: [OT] Eigenentwicklung vs. Produkt (war Re: Arbeitszeiten in JavaScript) |
| Message-ID | <ut8s30.a70.1@mid.maikkoenig.de> |
| In reply to | #5469 |
Am 18.03.2024 um 06:36 schrieb Janis Papanagnou: [jede Menge OT-Fragen] Das können wir gerne per Mail diskutieren, hier ist das komplett OffTopic. 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
[toc] | [prev] | [next] | [standalone]
| From | Janis Papanagnou <janis_papanagnou+ng@hotmail.com> |
|---|---|
| Date | 2024-03-19 06:47 +0100 |
| Subject | Re: [OT] Eigenentwicklung vs. Produkt (war Re: Arbeitszeiten in JavaScript) |
| Message-ID | <utb8ss$m1r5$1@dont-email.me> |
| In reply to | #5470 |
On 18.03.2024 07:56, Maik Koenig wrote: > Am 18.03.2024 um 06:36 schrieb Janis Papanagnou: > > [jede Menge OT-Fragen] > > Das können wir gerne per Mail diskutieren, hier ist das komplett OffTopic. Was denkst du, warum ich den Subthread als [OT] klassifiziert hatte?! Es steht dir - wie jedem anderen - frei, [OT] Posts einfach zu überspringen. - Und nein, ich will das mit dir nicht diskutieren; ich habe im Post nur ein paar Jahrzehnte professionelle Erfahrung zum Thema geteilt. Alles Weitere liegt am Leser... > > Greetz, > MK >
[toc] | [prev] | [next] | [standalone]
| From | "Peter J. Holzer" <hjp-usenet4@hjp.at> |
|---|---|
| Date | 2024-03-18 20:37 +0100 |
| Subject | Re: [OT] Eigenentwicklung vs. Produkt (war Re: Arbeitszeiten in JavaScript) |
| Message-ID | <slrnuvh5vn.vdue.hjp-usenet4@trintignant.hjp.at> |
| In reply to | #5469 |
[Umleitung wegen Maiks Wink mit dem Zaunpfahl ;-)]
On 2024-03-18 05:36, Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
> On 17.03.2024 18:12, Maik Koenig wrote:
>> Ja. Normaler Weise kann man sich solche Software einfach installieren
>> und fertig. Aber nur wenn die IT-Abteilung des Arbeitgebers da mitspielt
>> was sie hier nicht macht, was ich in dem speziellen Fall nachvollziehen
>> kann. Man kann die Rechnung "von Hand" machen, das ist nicht überaus
>> kompliziert nur lästig und unnötig zeitraubend.
>
> Es ist eine Entscheidung, die das Unternehmen machen muss. Wenn die
> Leitungsebene das nicht sieht oder meint, man braucht das nicht, dann
> kann das im spezifischen Unternehmenskontext richtig oder falsch sein.
>
>>
>> Es ist halt einfacher wenn man ein Formular hat in welches man die
>> Rahmenbedingungen eingibt und das Ergebnis kommt per Mausklick.
>
> Genau. Es ist allerdings selten eine richtige Entscheidung, so etwas
> selbst "neu zu erfinden", anstatt ein bestehendes Produkt zu nutzen,
> bei dem man mit einem Minimum an Qualität und Funktionsumfang rechnen
> kann.
Mit Betonung auf "Minimum". Betriebliche Software ist meiner
(glücklicherweise nicht besonders umfangreichen) Erfahrung nach
unglaublich schlecht.
Wann immer wir vor der Wahl Kaufen oder Selberschreiben standen und mit
dem Argument "das gibt es ja fertig, da haben wir keinen Aufwand" für
einen Kauf entschieden wurde, war das erstens schon einiges an Aufwand,
das am wenigsten schlechte Produkt zu finden, dieses dann anpassen zu
lassen (solche Software ist offenbar nie "schlüsselfertig") und Daten zu
migrieren, und zweitens war mit dem Ergebnis auch keiner zufrieden (aber
immerhin waren dann nicht wir Entwickler schuld, das ist auch was wert ;-)).
hp
[toc] | [prev] | [next] | [standalone]
| From | Stefan Reuther <stefan.news@arcor.de> |
|---|---|
| Date | 2024-03-17 09:42 +0100 |
| Message-ID | <ut6du8.5a4.1@stefan.msgid.phost.de> |
| In reply to | #5460 |
Am 16.03.2024 um 22:03 schrieb Maik Koenig:
> 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.
Um die Logik wie beschrieben wirst du nicht herumkommen, aber eventuell
kann man es kleverer aufschreiben.
Zuerst würde ich über die Datums-Repräsentation nachdenken. Brauchst du
wirklich ein Datum in der realen Welt oder reicht ein einfacher Wert wie
z.B. "Zeit seit <Zeitpunkt>" (Mitternacht, Montag Mitternacht,
1.1.1970), ausgedrückt in Sekunden oder Minuten? Wenn du mit Zahlen
statt Date()-Objekten rechnen kannst, wird es einfacher.
Angenommen, die Zeit wird repräsentiert als "Minuten seit Mitternacht an
<Tag>", dann wird eine Funktion zur Klassifizierung sowas wie
var TIMES = [6*60, 6*60+30, // Pause von 6:00 bis 6:30
12*60, 13*60, // Pause von 12:00 bis 13:00
18*60, 18*60+30]; // Pause von 18:00 bis 18:30
function classify(t) {
var mins = t % 24*60; // Minuten seit Mitternacht
for (var i = 0; i < TIMES.length; ++i) {
if (mins < TIMES[i]) {
return { isPause: i%2, duration: TIMES[i] - t };
}
}
return { isPause: 0, duration: 24*60-t }; // Arbeit bis Mitternacht
}
und die Berechnung sowas wie
function completionTime(t, work) {
while (work > 0) {
var k = classify(t);
if (!k.isPause) { // wenn keine Pause, verrichte Arbeit
var now = Math.min(work, k.duration);
work -= now;
t += now;
} else {
t += k.duration; // Pause, einfach nur Zeit weitersetzen
}
}
return t;
}
(Disclaimer: ungetestet runtergeschrieben)
Das halte ich jetzt für recht übersichtlich. In Date() umrechnen muss
man dann nur für die Ein-/Ausgabe.
Sommerzeit und Feiertage wären in der classify()-Funktion zu
berücksichtigen, das sollte aber relativ einfach handhabbar sein. Falls
du auf irgendwelche Magie in Date() gehofft hast, die mit Schaltsekunden
umgeht: gibt's nicht. Aber damit kann man dann eben auch z.B. den
Wochentag bekommen mit '(t / (24*60)) % 7'.
Stefan
[toc] | [prev] | [next] | [standalone]
| From | Maik Koenig <usenetspam@maikkoenig.de> |
|---|---|
| Date | 2024-03-17 15:10 +0100 |
| Message-ID | <ut714d.9oc.1@mid.maikkoenig.de> |
| In reply to | #5464 |
Am 17.03.2024 um 09:42 schrieb Stefan Reuther: > Das halte ich jetzt für recht übersichtlich. In Date() umrechnen muss > man dann nur für die Ein-/Ausgabe. Um ehrlich zu sein verstehe ich deinen Code nur zum Teil. Was ihn für mich natürlich komplett unübersichtlich macht :). Ich bin weder Mathematiker noch Informatiker, ich mache das als Hobby "nebenbei". Was letztlich heisst dass mein Code zwar funktioniert aber meistens ausufert da ich Abkürzungen schlicht nicht kenne. Das ist für meinen Bedarf auch nicht weiter schlimm, stört aber natürlich wenn ich Lösungen von anderen verstehen will. Ich muss mich damit (deinem Code) mal intensiver beschäftigen, einstweilen mal ein Danke. > Sommerzeit und Feiertage wären in der classify()-Funktion zu > berücksichtigen, das sollte aber relativ einfach handhabbar sein. Falls > du auf irgendwelche Magie in Date() gehofft hast, die mit Schaltsekunden > umgeht: gibt's nicht. Aber damit kann man dann eben auch z.B. den > Wochentag bekommen mit '(t / (24*60)) % 7'. Sommerzeit, Schaltsekunde, Feiertage etc sind in dem Fall irrelevant. Es geht um eine Abschätzung wann geplante Arbeit abgeschlossen sein wird. Wenn man die Daten Ende März eingibt und als Ergebnis kommt Karfreitag raus, dann ist dem Nutzer klar dass dann der Dienstag nach Ostern das Ziel ist. 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
[toc] | [prev] | [next] | [standalone]
| From | "Peter J. Holzer" <hjp-usenet4@hjp.at> |
|---|---|
| Date | 2024-03-17 16:42 +0100 |
| Message-ID | <slrnuve3qe.p1dr.hjp-usenet4@trintignant.hjp.at> |
| In reply to | #5465 |
On 2024-03-17 14:10, Maik Koenig <usenetspam@maikkoenig.de> wrote:
> Sommerzeit, Schaltsekunde, Feiertage etc sind in dem Fall irrelevant.
> Es geht um eine Abschätzung wann geplante Arbeit abgeschlossen sein
> wird.
Ohne Eure Arbeitsabläufe im Detail zu kennen, scheint mir, dass Du du
dann die Pausenbehandlung vereinfachen kannst. Statt 3 Schichten, die
z.B. aus 4 Stunden Arbeit, 0.5 Stunden Pause, 3.5 Stunden Arbeit
bestehen, hast Du 3 Schichten zu je 7.5 Stunden.
(Das geht natürlich nicht, wenn da Arbeitsschritte drin sind, die
längere Zeit dauern und nicht unterbrochen werden können. Wenn so ein
Schritt 2 Stunden dauert, kann man ihn nicht eine Stunde vor einer Pause
oder dem Ende der Schicht beginnen. Ist aber für eine Abschätzung
vielleicht irrelevant).
hp
[toc] | [prev] | [next] | [standalone]
| From | Maik Koenig <usenetspam@maikkoenig.de> |
|---|---|
| Date | 2024-03-17 18:33 +0100 |
| Message-ID | <ut7d25.5oc.1@mid.maikkoenig.de> |
| In reply to | #5466 |
Am 17.03.2024 um 16:42 schrieb Peter J. Holzer: > On 2024-03-17 14:10, Maik Koenig <usenetspam@maikkoenig.de> wrote: >> Sommerzeit, Schaltsekunde, Feiertage etc sind in dem Fall irrelevant. >> Es geht um eine Abschätzung wann geplante Arbeit abgeschlossen sein >> wird. > > Ohne Eure Arbeitsabläufe im Detail zu kennen, scheint mir, dass Du du > dann die Pausenbehandlung vereinfachen kannst. Statt 3 Schichten, die > z.B. aus 4 Stunden Arbeit, 0.5 Stunden Pause, 3.5 Stunden Arbeit > bestehen, hast Du 3 Schichten zu je 7.5 Stunden. Jetzt wo ich das lese... natürlich. Man muss dann nur am Anfang gucken wo man "jetzt" ist um die Restzeit der aktuellen Schicht zu kennen. Ab dann kann man einfach 8 Stunden pro Schicht weiter rechnen und von der "Arbeitszeit" 7,5 Std abziehen. Bis weniger als 7.5 Stunden Restzeit übrig sind, dann müsste man wieder gucken ob man vor oder nach den Pausen landet. Autsch, das hätte ich auch selbst sehen können. Danke für den Tritt! Das reduziert meinen Code drastisch. > (Das geht natürlich nicht, wenn da Arbeitsschritte drin sind, die > längere Zeit dauern und nicht unterbrochen werden können. Wenn so ein > Schritt 2 Stunden dauert, kann man ihn nicht eine Stunde vor einer Pause > oder dem Ende der Schicht beginnen. Ist aber für eine Abschätzung > vielleicht irrelevant). Da gehts nicht um eine auf die Minute genaue Rechnung, die wäre sowieso unrealistisch. Es geht mehr darum heraus zu finden ob man z.B. eine Zusatzschicht einplanen muss um den Termin einzuhalten. Oder ob man die Arbeiter vielleicht mal am Freitag in der Spätschicht früher nach Hause schicken kann. 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
[toc] | [prev] | [next] | [standalone]
| From | Tim Landscheidt <tim@tim-landscheidt.de> |
|---|---|
| Date | 2024-03-18 08:36 +0000 |
| Message-ID | <87wmq0vsw6.fsf@vagabond.tim-landscheidt.de> |
| In reply to | #5468 |
Maik Koenig <usenetspam@maikkoenig.de> wrote: > […] >> (Das geht natürlich nicht, wenn da Arbeitsschritte drin sind, die >> längere Zeit dauern und nicht unterbrochen werden können. Wenn so ein >> Schritt 2 Stunden dauert, kann man ihn nicht eine Stunde vor einer Pause >> oder dem Ende der Schicht beginnen. Ist aber für eine Abschätzung >> vielleicht irrelevant). > Da gehts nicht um eine auf die Minute genaue Rechnung, die wäre sowieso > unrealistisch. Es geht mehr darum heraus zu finden ob man z.B. eine > Zusatzschicht einplanen muss um den Termin einzuhalten. Oder ob man die > Arbeiter vielleicht mal am Freitag in der Spätschicht früher nach Hause > schicken kann. Bei einer meinetwegen „nur“ stundengenauen Planung muss man aber auch Ausfallzeiten von Mensch und Maschine berücksich- tigen, mehrere parallele Aufträge, die sich gegenseitig aus- schließen, etc. Da kommt man dann um „richtige“ Software nicht herum. Wenn die Verantwortung eh bei einem Menschen liegt, der das nachher abzeichnet, wird es aber meistens reichen (und die Nerven schonen) zu sagen, aus Erfahrung schaffen wir sechs Stunden/Arbeitstag, ein 47-Stunden-Auftrag ist dann in acht Arbeitstagen abgearbeitet, zusätzlich noch einen für Unvor- hergesehenes, und wenn es schneller geht, freuen sich alle. Tim
[toc] | [prev] | [next] | [standalone]
| From | Stefan Reuther <stefan.news@arcor.de> |
|---|---|
| Date | 2024-03-18 17:58 +0100 |
| Message-ID | <ut9vbh.440.1@stefan.msgid.phost.de> |
| In reply to | #5468 |
Am 17.03.2024 um 18:33 schrieb Maik Koenig: > Am 17.03.2024 um 16:42 schrieb Peter J. Holzer: >> On 2024-03-17 14:10, Maik Koenig <usenetspam@maikkoenig.de> wrote: >>> Sommerzeit, Schaltsekunde, Feiertage etc sind in dem Fall irrelevant. >>> Es geht um eine Abschätzung wann geplante Arbeit abgeschlossen sein >>> wird. >> >> Ohne Eure Arbeitsabläufe im Detail zu kennen, scheint mir, dass Du du >> dann die Pausenbehandlung vereinfachen kannst. Statt 3 Schichten, die >> z.B. aus 4 Stunden Arbeit, 0.5 Stunden Pause, 3.5 Stunden Arbeit >> bestehen, hast Du 3 Schichten zu je 7.5 Stunden. > > Jetzt wo ich das lese... natürlich. Man muss dann nur am Anfang gucken > wo man "jetzt" ist um die Restzeit der aktuellen Schicht zu kennen. Ab > dann kann man einfach 8 Stunden pro Schicht weiter rechnen und von der > "Arbeitszeit" 7,5 Std abziehen. Bis weniger als 7.5 Stunden Restzeit > übrig sind, dann müsste man wieder gucken ob man vor oder nach den > Pausen landet. In etwa das soll mein Code tun, nur eben aufgeschrieben mit "Minuten seit <Zeit>" als Zahl, statt mit Date-Objekten: die classify-Funktion sagt, ob wir in einer Pause sind oder nicht, und wenn nicht, wird entsprechend viel Arbeit abgezählt. >> (Das geht natürlich nicht, wenn da Arbeitsschritte drin sind, die >> längere Zeit dauern und nicht unterbrochen werden können. Wenn so ein >> Schritt 2 Stunden dauert, kann man ihn nicht eine Stunde vor einer Pause >> oder dem Ende der Schicht beginnen. Ist aber für eine Abschätzung >> vielleicht irrelevant). > > Da gehts nicht um eine auf die Minute genaue Rechnung, die wäre sowieso > unrealistisch. Es geht mehr darum heraus zu finden ob man z.B. eine > Zusatzschicht einplanen muss um den Termin einzuhalten. Oder ob man die > Arbeiter vielleicht mal am Freitag in der Spätschicht früher nach Hause > schicken kann. Wobei da die Frage ist, ob du dafür wirklich die Pausen genau berechnen musst, oder ob da einfach reicht "eine 8-Stunden-Schicht verrichtet 6 Stunden Arbeit". Es kommt ja auch mal was dazwischen (Maschine springt nicht an, Ausschuss produziert, Mitarbeiter sitzt öfter auf dem Keramik als geplant, etc.), so dass ich wegen "10 Projekte werden voraussichtlich Freitags um 16:28 fertig" jetzt nicht der Spätschicht komplett freigeben würde. Und wenn die wider erwarten alle 14:00 fertig sind, können sie Überstunden abbauen oder Unterweisungen durchführen. Aber ich bin kein Schichtplaner, nur Entwickler. Heißt: ich kenne die Industrie-Best-Practice der Schichtplaner nicht. Heißt aber auch: ich kann oftmals erst Freitag 15:30 abschätzen, ob das ein pünktlicher Feierabend, eine Überstunde oder eine Extraschicht wird. Stefan
[toc] | [prev] | [standalone]
Back to top | Article view | de.comp.lang.javascript
csiph-web