AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Zeitberechnung inklusive Pausen etc. Planung
Thema durchsuchen
Ansicht
Themen-Optionen

Zeitberechnung inklusive Pausen etc. Planung

Ein Thema von sonny2007 · begonnen am 17. Jan 2012 · letzter Beitrag vom 17. Jan 2012
Antwort Antwort
sonny2007

Registriert seit: 27. Aug 2009
39 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Zeitberechnung inklusive Pausen etc. Planung

  Alt 17. Jan 2012, 13:38
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
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Zeitberechnung inklusive Pausen etc. Planung

  Alt 17. Jan 2012, 14:30
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (17. Jan 2012 um 14:34 Uhr)
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Zeitberechnung inklusive Pausen etc. Planung

  Alt 17. Jan 2012, 14:57
Hallo Delphianer ( schreibt man das so ?),
stimmt 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
= 15,25 Stunden produktive Arbeitszeit, siehe mein vorposter
Nun habe ich ein Auftrag der 300 Stunden läuft.
Dauer bis zur Fertigstellung: 300/15,25 = 19,67 Tage.

Ich benötige nun den Ansatz wie ich die Uhrzeit( Fertigstellung ) errechne. Pausen sollten berücksichtigt werden.
Ich unterstelle Du verwendest TDateTime (Datumstyp in Delphi) und die unit DateUtils.
Delphi-Quellcode:
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
fertig.

Allerdings solltest Du auch arbeitsfreie Tage berücksichtigen (Sonntag od. Feiertag), d.h. entsprechende Tage dazuaddieren mit IncDay.
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
sonny2007

Registriert seit: 27. Aug 2009
39 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Zeitberechnung inklusive Pausen etc. Planung

  Alt 17. Jan 2012, 15:20
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
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Zeitberechnung inklusive Pausen etc. Planung

  Alt 17. Jan 2012, 15:23
Ich unterstelle Du verwendest TDateTime (Datumstyp in Delphi) und die unit DateUtils.
Delphi-Quellcode:
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
fertig.

Allerdings solltest Du auch arbeitsfreie Tage berücksichtigen (Sonntag od. Feiertag), d.h. entsprechende Tage dazuaddieren mit IncDay.
Wenn du einfach so am Ende die Stunden dazuzählst, dann kommst du niemals auf das richtige Ergebnis.
(und so sowieso nicht )
Deine Endzeit wäre 16:04:48 (0,67 Tage)
Richtig ist aber:
Code:
300h / 15,25h/Arbeitstag = 19,67 Arbeitstage => 19 ganze Arbeitstage
Rest-Stunden => 0,67 Arbeitstage * 15,25h/Arbeitstag = 10,2175h => 10:13:03
Aber es wird ja nicht rund um die Uhr gearbeitet.
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Zeitberechnung inklusive Pausen etc. Planung

  Alt 17. Jan 2012, 16:38
Deine Endzeit wäre 16:04:48 (0,67 Tage)
Ja, wenn man als Startzeit 0:00 Uhr annimmt! Aber: Arbeitsbeginn ist erst um 6:00 Uhr, also Fertigstellung um 22:07 Uhr, 19 Tage später...

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
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Zeitberechnung inklusive Pausen etc. Planung

  Alt 17. Jan 2012, 18:13
Und wenn die erst um 08:00 Uhr anfangen, dann ist man schon wieder einen Tag weiter
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz