Du musst für die Betrachtung nicht die Pausen nehmen, sondern die Zeit, in der gearbeitet wird.
Dabei betrachtest du aber nur einen 24h Zeitraum. Es ist dabei unerheblich ob von 00:00-03:00 z.B. die Nachtschicht vom Vorabend arbeitet. An dem Tag wird einfach in der Zeit gearbeitet.
Code:
+00++01++02++03++04++05++06++07++08++09++10++11++12++13++14++15++16++17++18++19++20++21++22++23+
........................xxxxxxxxxxxxxx.xxxxxxxxx...xxxxxxxXXXXXXXX.XXXXXXXXXXXXX..XXXXXXXXXX....
oder auch anders geschrieben:
Code:
06:00 3,50h S1
09:45 2,25h S1
12:45 1,75h S1
14:30 2,00h S2
16:45 3,25h S2
20:30 2,50h S2
==============
.....15,25h Gesamt
Du müsstest jetzt zunächst die Restzeit vom Starttag errechnen (anhand der Blöcke).
Es sei denn jeder Auftrag startet immer um 06:00
Ist diese Restzeit < Auftragszeit, dann nimmst du die Auftragszeit-Restzeit und teilst dies durch die Gesamt-Arbeitszeit pro Tag um die Tage zu ermitteln.
Jetzt musst du noch die Restzeit für den letzten Tag ermitteln
Code:
RestzeitEnde = Auftragszeit - RestzeitAnfang - Tage * TagesArbeitszeit
Mit dieser Restzeit gehst du nun Block für Block durch und stellst dabei fest, ob die Restzeit in diesem Block abgearbeitet werden kann.
Wenn dem so ist, dann nimmst du einfach die Startzeit des Blocks und addierst die Restzeit hinzu und hast die errechnete Uhrzeit
EDIT:
Wenn du die Wochenenden und Feiertage berücksichtigen möchtest, dann musst du dir für jeden Tag dieses Zeitraster holen und damit rechnen.