![]() |
Arbeitszeit berechnen
Hallo an alle,
ich habe ein Problem beim errechnen meiner Arbeitszeit. Um die Zeitdifferenz zwischen Start- und Endzeit minus der Pause zu ermitteln, habe ich folgenden Code benutzt.
Delphi-Quellcode:
Ich erhalte die richtige Zeitangabe, aber leider eben als 8,30 anstatt 8,50.
(*Zeit berechnen*)
DBEdit5.Text :=formatdatetime('h,mm',strtotime(DBEdit4.Text) //Ende der Arbeitszeit -strtotime(DBEdit2.Text)-Strtotime(DBEdit3.Text)); // Anfang und Pause der Arbeitszeit Jetzt meine Frage: Wie wandle ich diesen Zeitwert in eine Industriezeit um? Ich hoffe, ich werde nicht gleich gesteinigt für meine Frage, aber ich habe in der Forensuche leider nichts gefunden. Danke Norbert |
Re: Arbeitszeit berechnen
Willkommen in der dp :dp:
1 - Hier wird man selten gesteinigt ^^. (Steine sind so schwer zu finden im web). 2 - ![]() |
Re: Arbeitszeit berechnen
Aber das ist keine Antwort auf seine Frage...
Ich denke, du kannst die Minuten (x) nehmen und dann in eine Dezimalzeit umrechnen: IndustriezeitDerMinuten = (x*10)/6 Ich hoffe, ich habe das Problem verstenden :oops: Edit: Beispiel: 8:30 Arbeitszeit: 8h+(30*10)/6h = 8,5h so sollte es eigentlich gehen. Nun musst du dir nur noch eine Funktion basteln, die das so umrechnet. |
Re: Arbeitszeit berechnen
Danke erstmal für die schnelle Antwort. Ich werde es heute mal probieren.
Mfg Norbert |
Re: Arbeitszeit berechnen
Hallo Norbert,
herzlich willkommen in der Delphi-PRAXiS. Dein Problem resultiert aus deinem Versuch Zeitpunkte im Display-Format zu speichern. Wenn du die Zeitwerte gleich als DATETIME speicherst, dann geht alles wie von selbst. Du kannst dann problemlos Berechnungen durchführen und für die Anzeige konvertierst du die Werte mit den Funktionen DateToStr(), TimeToStr() oder DateTimeToStr(). Die Darstellung als Industriezeit erreichst du einfach durch FloatToStr(). Freundliche Grüße vom marabu |
Re: Arbeitszeit berechnen
hallo Leute,
ich denke so sollte es funktionieren.
Delphi-Quellcode:
Gibt es noch eine einfachere Lösung?
(*Werte holen*)
pause := StrToDateTime(DBEdit3.Text); //Pause von := StrToDateTime(DBEdit2.Text); //Von bis := StrToDateTime(DBEdit4.Text); //bis (*Zeit umwandeln*) zeit := (bis - von)- pause; DecodeTime(zeit, hour, min, sec, msec); a := hour ; b := (min*10)/6; DBEdit5.Text := FloatToStr(a)+','+FloatToStr(b); Mfg Norbert |
Re: Arbeitszeit berechnen
Zitat:
Delphi-Quellcode:
Gruß Hawkeye
procedure Demo;
var von, bis : TDateTime; s : string; begin von := StrToTime('08:30'); bis := StrToTime('17:00'); s := FloatToStr(24 * (bis - von)); end; |
Re: Arbeitszeit berechnen
Hallo Leute,
Sorry, dass ich eure Lösungen nicht gleich übernommen habe. Danke trotzdem . Mfg Norbert |
Re: Arbeitszeit berechnen
Hey leute,
man sieht den Wald vor lauter Bäumen nicht :mrgreen:
Delphi-Quellcode:
procedure TForm2.DBEdit5Click(Sender: TObject);
var bis, pause,von: TDateTime; begin (*Werte holen*) try pause := StrToDateTime(DBEdit3.Text); //Pause von := StrToDateTime(DBEdit2.Text); //Von bis := StrToDateTime(DBEdit4.Text); //bis (*Zeit umwandeln*) DBEdit5.Text := FloatToStr(24*(bis-von-pause)); EXCEPT on EConvertError do begin ShowMessage('Bitte ein gültige Uhrzeit eintragen!'); end; end; end; |
Re: Arbeitszeit berechnen
Hallo norbert3,
Delphi-Quellcode:
ich als Anwender würde ein "gepflegteres" deutsch erwarten. :mrgreen: :mrgreen: :mrgreen:
ShowMessage('Bitte ein gültige Uhrzeit eintragen!');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 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 by Thomas Breitkreuz