Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi funktion für Zeitberechnung ohne 24 Stundengrenze (https://www.delphipraxis.net/80206-funktion-fuer-zeitberechnung-ohne-24-stundengrenze.html)

MkA2k 4. Nov 2006 18:38


funktion für Zeitberechnung ohne 24 Stundengrenze
 
HI,

ich suche eine Funktion oder Snippet für die Zeitberechnung ohne 24 Stundengrenzen.

also das 26:15 std nicht als "02:15" ausgeben werden. Ich hab zwar gesucht, aber nichts wirklich hilfreiches gefunden.

Wäre nett wenn mir da jemand weiterhelfen könnte.


Danke

MkA2k

mkinzler 4. Nov 2006 18:40

Re: funktion für Zeitberechnung ohne 24 Stundengrenze
 
Der Type Time kapselt nun mal Zeitpunkte und keine Spannen. Brauchst du dass, mußt du das wohl selber implementieren.

Klaus01 4. Nov 2006 18:46

Re: funktion für Zeitberechnung ohne 24 Stundengrenze
 
Du könntest die Funktion

Delphi-Quellcode:
function MinutesBetween(const ANow, AThen: TDateTime): Int64;
aus der Unit DateUtils benutzen.

Mit div 60 kannst Du dann die Stunden ermitteln
und mit mod 60 die restlichen Minuten.

Grüße
Klaus

Hawkeye219 4. Nov 2006 19:01

Re: funktion für Zeitberechnung ohne 24 Stundengrenze
 
Hallo MkA2k,

du mußt die Ergebnisse der Berechnung nur richtig interpretieren:

Delphi-Quellcode:
var
  Date1, Date2, Difference : TDateTime;
begin
  Date1 := StrToDateTime('01.11.2006 10:00:00');
  Date2 := StrToDateTime('02.11.2006 12:15:00');
  Difference := Date2 - Date1;
  ShowMessage (IntToStr(Trunc(Difference * 24)) + FormatDateTime(':nn:ss', Difference));
end;
Die Online-Hilfe erklärt, in welchen Format die Daten im Typ Delphi-Referenz durchsuchenTDateTime abgelegt sind.

Gruß Hawkeye

Jelly 4. Nov 2006 19:09

Re: funktion für Zeitberechnung ohne 24 Stundengrenze
 
Oder so... t kann z.B. eine Zeitdifferenz sein, wie 1 Tag, 2 Stunden und 15 Minuten

Delphi-Quellcode:
function Minuten (t : TDateTime) : string ;
begin
     Result := Format ('%.2d:%s',[trunc(t)*24+trunc(Frac(t)*24),formatdatetime('nn',t)]) ;
end ;

MkA2k 4. Nov 2006 19:16

Re: funktion für Zeitberechnung ohne 24 Stundengrenze
 
Hi

Ich danke euch beiden ;-). Beide Samples funktionieren bestens.


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