Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zeiten SUM und ZA mit minus Zeiten ausgeben (https://www.delphipraxis.net/161031-zeiten-sum-und-za-mit-minus-zeiten-ausgeben.html)

StoRmtec 13. Jun 2011 13:09

Datenbank: mySQL • Version: 5.5 • Zugriff über: ZeosLib

Zeiten SUM und ZA mit minus Zeiten ausgeben
 
Hallo Community

Hätte wieder mal ein Problem und zwar versuche ich gerade Arbeitszeiten aufzuzeichnen was auch sehr gut funktioniert.
Gebe zB in einer Form meine Begin und Ende und Pause ein
dann rechnet er mir die StundenIST aus und tragt auch StundenSOll ein und errechnet mit die ZA

also zB

kommen - ende - pause - ist - soll - za
08:10 - 17:00 - 00:30 - 08:20 - 08:30 - -00:10
07:50 - 17:00 - 00:30 - 08:40 - 08:30 - 00:10

jetzt möchte ich gerne die ist und soll stunden summieren (also mit sum) und in einem format hh:mm ausgeben wie kann ich das am besten machen. und das zweite wäre dann wie kann ich das auch bei der ZA machen mit minus und plus zeiten das er mir das wegzieht und in diesem Fall ZA 00:00 ist.

Habe auf meiner Tabelle schon die Datentyp auf Time umgestellt.

Danke

DeddyH 13. Jun 2011 13:35

AW: Zeiten SUM und ZA mit minus Zeiten ausgeben
 
Du vermischst Uhrzeiten mit Zeitdauern. Die Zeitdauern (wie lange Pause usw.) kann man ja auch als Gleitkommazahl (double) abspeichern und einfach summieren. Bei der Ausgabe dieser Summen muss man dann eben selber rechnen, da die Standard-Datumsformate wohl keine Stunden > 24 ausgeben werden.

mkinzler 13. Jun 2011 13:37

AW: Zeiten SUM und ZA mit minus Zeiten ausgeben
 
In MySQL zumindest nicht, da ja dort das Datums-/Zeitformat auf Strings basiert. In anderen DBMS werden solche Werte als Fließkommazahlen gespeichert.

StoRmtec 13. Jun 2011 13:43

AW: Zeiten SUM und ZA mit minus Zeiten ausgeben
 
Okay und wie kann ich das als double abspeichern. Sorry wenn ich so Frage habe aber sowas noch nie gemacht.

Danke

mkinzler 13. Jun 2011 13:45

AW: Zeiten SUM und ZA mit minus Zeiten ausgeben
 
Ein Windows Timestamp ist schon ein Double, vor dem Komma stehen die Tage seit dem 31.12.1899 und nach dem Komma die Sekunden seit Mitternacht

StoRmtec 13. Jun 2011 13:47

AW: Zeiten SUM und ZA mit minus Zeiten ausgeben
 
das heißt ich soll auf timestamp umstellen oder verstehe ich das falsch?

mkinzler 13. Jun 2011 13:48

AW: Zeiten SUM und ZA mit minus Zeiten ausgeben
 
Auf Double sollte ja schon reichen und dann die die Zeitwerte dann so in die DB schreiben

StoRmtec 13. Jun 2011 13:52

AW: Zeiten SUM und ZA mit minus Zeiten ausgeben
 
welchen dateitype muss ich dann in der tabelle einstellen
und könntest du mir schnell ein beispiel machen wie ich das machen kann oder gibts wo eine anleitung.

danke

mkinzler 13. Jun 2011 13:56

AW: Zeiten SUM und ZA mit minus Zeiten ausgeben
 
Einen Double

SQL-Code:
insert into <tabelle> ( kommen, ...) values (:kommen, ...);
Delphi-Quellcode:
ds.Params.ParamByName('kommen').Value := ...
bzw.
Delphi-Quellcode:
ds.Params.ParamByName('kommen').asFloat := ...

StoRmtec 13. Jun 2011 14:01

AW: Zeiten SUM und ZA mit minus Zeiten ausgeben
 
okay ich mache es so also ist das dann falsch

Delphi-Quellcode:
procedure Tzeitbuchen.Button2Click(Sender: TObject);
begin
  LongTimeFormat := 'hh:mm';
//zeiterfassung.Form1.adouebersicht.active := false; //Übersicht wird deaktiviert
 DB_AZ.Text := formatDatetime('hh:mm',strtotime(DB_AZende.Text)-strtotime(DB_AZbeginn.Text)-strtotime(DB_Pause.Text));
 DB_ZA.Text := formatDatetime('hh:mm',strtotime(DB_SOLL.text)-strtotime(DB_AZ.Text));

 if StrToTime(DB_SOLL.Text) > StrToTime(DB_AZ.Text) then
begin
  x := StrToTime(DB_AZ.Text) - StrToTime(DB_SOLL.Text);
  DB_ZA.Text := '-' + TimeToStr(x);
end
else if StrToTime(DB_AZ.Text) < StrToTime(DB_SOLL.Text) then
begin
  x := StrToTime(DB_SOLL.Text) - StrToTime(DB_AZ.Text);
  DB_ZA.Text := TimeToStr(x);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 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