Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Arbeitszeit berechnen (https://www.delphipraxis.net/70091-arbeitszeit-berechnen.html)

norbert3 24. Mai 2006 21:54


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:
(*Zeit berechnen*)
DBEdit5.Text :=formatdatetime('h,mm',strtotime(DBEdit4.Text)  //Ende der Arbeitszeit
-strtotime(DBEdit2.Text)-Strtotime(DBEdit3.Text));            // Anfang und Pause der Arbeitszeit
Ich erhalte die richtige Zeitangabe, aber leider eben als 8,30 anstatt 8,50.
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

pacman1986 24. Mai 2006 22:34

Re: Arbeitszeit berechnen
 
Willkommen in der dp :dp:
1 - Hier wird man selten gesteinigt ^^. (Steine sind so schwer zu finden im web).
2 - http://www.delphipraxis.net/to...en

Nicolai1234 24. Mai 2006 22:42

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.

norbert3 25. Mai 2006 07:28

Re: Arbeitszeit berechnen
 
Danke erstmal für die schnelle Antwort. Ich werde es heute mal probieren.

Mfg Norbert

marabu 25. Mai 2006 09:03

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

norbert3 25. Mai 2006 10:14

Re: Arbeitszeit berechnen
 
hallo Leute,
ich denke so sollte es funktionieren.

Delphi-Quellcode:
(*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);
Gibt es noch eine einfachere Lösung?

Mfg Norbert

Hawkeye219 25. Mai 2006 10:40

Re: Arbeitszeit berechnen
 
Zitat:

Zitat von norbert3
Gibt es noch eine einfachere Lösung?

Die hat dir marabu bereits vor 1,5 Stunden beschrieben:

Delphi-Quellcode:
procedure Demo;
  var von, bis : TDateTime;
      s : string;
begin
  von := StrToTime('08:30');
  bis := StrToTime('17:00');
  s := FloatToStr(24 * (bis - von));
end;
Gruß Hawkeye

norbert3 25. Mai 2006 11:41

Re: Arbeitszeit berechnen
 
Hallo Leute,

Sorry, dass ich eure Lösungen nicht gleich übernommen habe.

Danke trotzdem .
Mfg Norbert

norbert3 25. Mai 2006 11:54

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;

juergen 25. Mai 2006 16:22

Re: Arbeitszeit berechnen
 
Hallo norbert3,
Delphi-Quellcode:
ShowMessage('Bitte ein gültige Uhrzeit eintragen!');
ich als Anwender würde ein "gepflegteres" deutsch erwarten. :mrgreen: :mrgreen: :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr.
Seite 1 von 2  1 2      

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