![]() |
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 |
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. |
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:
Eignet sich auch gut für berechnete Felder (OnCalcFields)
(vEnde - vStart) * 24
gruß, harrybo |
O.K Geschafft
Danke Ihr Hacker's. Zählt jetzt die Zeit in St.
Gruß pnuernbe :lol: |
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 |
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 23:13 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-2025 by Thomas Breitkreuz