Einzelnen Beitrag anzeigen

Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#3

AW: Zeiten speichern, berechnen

  Alt 27. Jun 2015, 10:27
Das kommt ein wenig darauf an, wie groß die zu messenden Zeit erwartungsgemäß werden sollen, und welche Genauigkeit am Ende verlangt ist.

Wenn es sich um eine Zeiterfassung handelt (wovon ich mal ausgehe da du von Industrieminuten spricht), kann ich dir mal sagen wie ich das mache.

Bei einer Zeiterfassung, bei der ein Minutenzeitraum erfasst werden soll, kann man nicht grundsätzlich davon ausgehen, dass die eigene Anwendung ohne Unterbrechung vom Start der Erfassung bis zum Ende der Erfassung läuft. Es kann durch aus sein, dass der Anwender diese auch mal kurz beendet bzw. ein anderes Problem auftritt.
Deswegen erfasse ich einen TDAteTime-Wert bei Start der Erfassung und lege mit diesen in einem Feld in einer Datenbank (kann natürlich auch irgendein anderer Speicherort sein) ab. Wenn nun das Ender der Erfassung signalisiert wird, dann erfasse ich den TDatetime-Wert erneut und lege ihn aber in einem anderen Feld ab. Jetzt habe ich 2 TDateTime-Werte, von denen ich z.B. per MinutesBetween die Differenz in Minuten errechnen kann, die ich dann (wenn ich denn will, als Integer in der DB ablegen kann. Aus diesen Minuten kann ich natürlich ohne Probleme in Industrieminuten umrechnen oder das ganze in Stunden/Minuten aufteilen. Es gibt natürlich auch die Funktion SecondsBetween, wenn's Sekundengenau sein soll.
Beide Funktionen liefern einen Int64 zurück, das entspräche dem BigInt in MSSQL.
Da man nun Integerwerte hat, kann die natürlich beliebig addieren oder sonst was mit machen.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat