![]() |
Zeitberechnung inklusive Pausen etc. Planung
Delphi-XE 2: VCL Datenbank: MS SQL-Server Verbindung über: ADO SQL
Hallo Delphianer ( schreibt man das so ?), folgendes Problem. Ich möchte gerne errechnen wann ein Teil ( Laufzeit bekannt ) endet. Welche Uhrzeit und welches Datum. Bsp.: Ich habe folgendes angelegt. Frühschicht: 6 -14:30 Uhr Pause1 : 09:30-09:45Uhr Pause2 : 12:00-12:45Uhr Spätschicht: 14:30-23:00 Uhr Pause1 : 16:30-16:45Uhr Pause2 : 20:00-20:30Uhr Nun habe ich ein Auftrag der 300 Stunden läuft.Tagesarbeitszeit beträgt 16 Stunden. Das Datum zu errechnen ist einfach in dem ich die Runtime(Auftrag) durch DayTime nehme. 300/16 = 18 volle Tage. Dann bleibt ja eine Restzeit von 12 Stunden übrig. Ich benötige nun den Ansatz wie ich die Uhrzeit( Fertigstellung ) errechne. Pausen sollten berücksichtigt werden. Vor lauter Dates und Times bin ich schon blind. Es können auch mehrere Pausenzeiten angegeben werden. Des Weiteren steht mir ständig auch der 0:00 Uhr Sprung im Weg. Bitte gebt mir einen Ansatz wie ich das zuverlässig lösen kann. Vielen Dank im Voraus s0n |
AW: Zeitberechnung inklusive Pausen etc. Planung
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:
oder auch anders geschrieben:
+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....
Code:
Du müsstest jetzt zunächst die Restzeit vom Starttag errechnen (anhand der Blöcke).
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 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:
Mit dieser Restzeit gehst du nun Block für Block durch und stellst dabei fest, ob die Restzeit in diesem Block abgearbeitet werden kann.
RestzeitEnde = Auftragszeit - RestzeitAnfang - Tage * TagesArbeitszeit
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. |
AW: Zeitberechnung inklusive Pausen etc. Planung
Zitat:
folgendes Problem. Ich möchte gerne errechnen wann ein Teil ( Laufzeit bekannt ) endet. Welche Uhrzeit und welches Datum. Bsp.: Ich habe folgendes angelegt. Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
fertig.
Dauer:= 19,67 //...
Enddatum:= IncDay(Startdatum, trunc(Dauer)); // startdatum um die anzahl der tage erhöhen Enddatum:= Enddatum + frac(dauer); // startdatum um die verbleibenden stunden erhöhen Allerdings solltest Du auch arbeitsfreie Tage berücksichtigen (Sonntag od. Feiertag), d.h. entsprechende Tage dazuaddieren mit IncDay. |
AW: Zeitberechnung inklusive Pausen etc. Planung
Hallo,
vielen Dank für die Antwort. Sir Rufo: Gute Idee: Blöcke und Anfangszeiten erfassen ist ein guter Vorschlag. Mache ich mich gleich mal ran ob ich das auch umgesetzt bekomme. Gruß s0n |
AW: Zeitberechnung inklusive Pausen etc. Planung
Zitat:
(und so sowieso nicht ;) ) Deine Endzeit wäre 16:04:48 (0,67 Tage) Richtig ist aber:
Code:
Aber es wird ja nicht rund um die Uhr gearbeitet.
300h / 15,25h/Arbeitstag = 19,67 Arbeitstage => 19 ganze Arbeitstage
Rest-Stunden => 0,67 Arbeitstage * 15,25h/Arbeitstag = 10,2175h => 10:13:03 Somit kann die Arbeit erst im Block 5 abgeschlossen werden
Code:
10,2175h - ( 3,50h (1.) + 2,25h (2.) + 1,75h (3.) + 2,00h (4.) ) = 0,7175h im 5. Block => 17:28:03
|
AW: Zeitberechnung inklusive Pausen etc. Planung
Zitat:
Aber nichts desto trotz, ist der Einsatz von Blöcken in puncto Brücksichtigung arbeitsfreier Zeiten sinnvoller. Nach meiner Methode müssten die Arbeiter bis 23:07 Uhr arbeiten, wenn sie erst um 7:00 Uhr anfingen :wink: |
AW: Zeitberechnung inklusive Pausen etc. Planung
Und wenn die erst um 08:00 Uhr anfangen, dann ist man schon wieder einen Tag weiter ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz