Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zeit in Stunden umwandeln (https://www.delphipraxis.net/2405-zeit-stunden-umwandeln.html)

pnuernbe 21. Jan 2003 18:48


Zeit in Stunden umwandeln
 
Hey Ihr Delphi Freaks.
Hab in meiner Datenbanktabelle ein Feld vom Typ Time in das jeder Mitarbeiter täglich seine Anwesenheit eintragen kann. Wenn ich diesen Zeitwert addiere, komme ich (klar) immer nur bis 24 Uhr. Wer weiß wie ich den Zeittyp umwandeln kann (z.B. Integer) um eine Stundenübersicht zu gestalten ?

Gruß
pnuernbe

MadMason 21. Jan 2003 18:58

ist zwar ein bisschen umständlich aber ich würde erst mit DateToStr in nen String umwandeln und dann die sache auslesen, also die Stunden übernehmen, die anzahl der tage * 24 nehmen und so weiter.
So kommste dann auf nen integer wert.

harrybo 21. Jan 2003 19:14

Hi pnuernbe,

ich empfehle Dir, neben der Zeit auch das Datum mitzuspeichern, entweder getrennt oder direkt als TDateTime (je nach Datenbank dort z.B. Timestamp). Es gibt z.B. Programmierer, die fangen abends an und sind zwei Tage später gegen Nachmittag mit der dringenden Fertigstellung eines Releases fertig. Was tragen die ein, wenn's nur Zeiten gibt?

Jedenfalls, mit TDateTime braucht man lediglich die Differenz zwischen Endezeit und Anfangszeit bilden und muss das dann nur noch mit 24 multiplizieren, also:
Delphi-Quellcode:
(vEnde - vStart) * 24
Eignet sich auch gut für berechnete Felder (OnCalcFields)
gruß, harrybo

pnuernbe 21. Jan 2003 19:55

O.K Geschafft
 
Danke Ihr Hacker's. Zählt jetzt die Zeit in St.

Gruß

pnuernbe :lol:

harrybo 22. Jan 2003 08:57

ich denke, es wäre hier - auch für andere - hilfreich, Du würdest kurz beschreiben, wie Du die Sache nun gelöst hast.

gruß, harrybo

pnuernbe 22. Jan 2003 21:25

Auflösung
 
Hab erst mal alle Einträge der Tage zusammengezählt :

//************************************************** *************
Datenmodul.WortimeTable.First; //Anfang der Tabelle

while not Datenmodul.WortimeTable.eof
begin
gesamt := gesamt + WorktimeQuery.Params[5].AsTime;//5 = GesamtTag
Datenmodul.WortimeTable.next;
end;
//************************************************** **************

...und dann GesamtMonat (Params 7) ausgerechnet...

//************************************************** **************

WorktimeQuery.Params[7].Value := gesamt * 24

//************************************************** **************

ExecSql;Refresh;

Gruß

pnuernbe


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