Sirius3 hat geschrieben: ↑Samstag 7. Mai 2022, 09:38
Was hast Du schon versucht? Wo kommst Du konkret nicht weiter? Zeige Deinen Code, das Ergebnis, Fehlermeldungen?
Ich habe tatsächlich bewusst keinen direkten Code hier geliefert weil ich eben schon so viele unterschiedliche Ansätze versucht habe.
Es gibt auch keine Fehlermeldungen die ich hier präsentieren könnte.
sparrow hat geschrieben: ↑Samstag 7. Mai 2022, 12:08
@Andy_71: Also im Prinzip fehlt dir damit... alles.
Die Berechnung von Arbeitszeiten ist nicht ganz ohne. Der hier gezeigte Fall ist ja noch recht übersichtlich, aber die Konstellationen können auch deutlich komplizierter sein. Und gerade die Fälle zu berücksichtigen - das ist eben die Herausforderung. Wir reden hier ja nicht davon, einfach Zeiten voneinander abzuziehen, sondern zu erkennen, ob gesetziche Pausen eingehalten wurden, etc.
Ich würde jetzt nicht sagen es fehlt mir alles, da viel Code drumherum existiert und funktioniert (Abfrage des Zeiterfassungssystems und import der Excel-Daten u.a.). Aber letztlich der Kern des Ganzen.
Aber Du bringst es letztlich auf den Punkt. Vom Prinzip her klingt es alles recht einfach und ist ja auch mit wenigen Sätzen im oben genannten Link gut beschrieben. Aber wie so oft steckt der Teufel im Detail.
Zwei Beispiele:
Code: Alles auswählen
Arbeitsbeginn: 08:00
1. Pause: 14:00 - 14:30
Arbeitsende: 16:00
Arbeitszeit (netto): 7 Stunden und 30 Minuten
eingegebene Pause: 30 Minuten
zusätzliche gesetzliche Pause: keine
Arbeitszeit (brutto): 8 Stunden
Code: Alles auswählen
Arbeitsbeginn: 08:00
1. Pause: 14:10 - 14:40
Arbeitsende: 16:00
Arbeitszeit (netto): 7 Stunden und 20 Minuten
eingegebene Pause: 30 Minuten
zusätzliche gesetzliche Pause: 10 Minuten
Arbeitszeit (brutto): 8 Stunden
Hier kann man schön sehen wie sich die Netto-Zeiten verändern obwohl die Pause gleich lang ist und Arbeitsanfang und -ende identisch sind. Und das nur weil die Pause zehn Minuten später begonnen wurde.
Das liegt daran, dass die Schicht vor der Pause eben > 6h ist und damit eine gesetzliche Zwangspause von bis 30 Minuten hinzukommt. Bis zu, weil die Zwangspause aus der Differenz der Schichtzeit und der 6h gebildet wird.
Im nachfolgenden Beispiel mal ein längerer Arbeitstag bei dem die 40 Minuten-Pause angerechnet wird aber zusätzlich weitere 5 Minuten Zwangspause hinzukommen, da bei der langen Arbeitszeit eben insgesamt 45 Minuten Pausen vom Gesetzgeber vorgesehen ist:
Code: Alles auswählen
Arbeitsbeginn: 08:00
1. Pause: 14:00 - 14:40
Arbeitsende: 18:00
Arbeitszeit (netto): 9 Stunden und 15 Minuten
eingegebene Pause: 40 Minuten
zusätzliche gesetzliche Pause: 5 Minuten
Arbeitszeit (brutto): 10 Stunden
Auch hier gilt wieder, verschiebt sich die erste Pause weiter als 6h nach Arbeitsbeginn nach hinten, dann wird wieder eine Zwangspause hinzukommen:
Code: Alles auswählen
Arbeitsbeginn: 08:00
1. Pause: 14:10 - 14:50
Arbeitsende: 18:00
Arbeitszeit (netto): 9 Stunden und 10 Minuten
eingegebene Pause: 40 Minuten
zusätzliche gesetzliche Pause: 10 Minuten
Arbeitszeit (brutto): 10 Stunden
Der Witz ist, ich kann das mittlerweile ziemlich gut im Kopf rechnen... aber ich habe jetzt so viele Ansätze via Code probiert, dass ich jetzt beim Coden den Wald vor lauter Bäumen nicht mehr sehe.
Ich weiß, dass klingt blöd, aber ich habe mich da völlig verrannt.
Daher suche ich hier bewusst eine Lösung die eben nicht auf eine meiner Ansätze beruht, sondern quasi "from the scratch".