![]() |
DatumZeit - DatumZeit = Rest In Tagen Stund Minuten Sekunden
Hallo.
Gibt es eine Funktion in D7 die mir eine DatumZeit Wert aus zwei DatumZeit wert ausrechnet. z.B. Angenommen am 01.01.06 8:00 Abgegeben am 05.01.06 10:00 Dauer 4 Tage und 2 Stunden (gibt das als eine Funktion) |
Re: DatumZeit - DatumZeit = Rest In Tagen Stund Minuten Seku
TDateTime ist ja eine Fließkommazahl; wenn du die Differenz zweier TDateTime bildest, dann hast du die Differenz in Tagen. Für 4 Tage und 2 Stunden wären das: 4,08333333.
Suche mal in der Delphi-Hilfe nach z.B. der Funktion "DaysBetween()" oder "HoursBetween()" etc. |
Re: DatumZeit - DatumZeit = Rest In Tagen Stund Minuten Seku
So könnte es gehen:
Delphi-Quellcode:
uses DateUtils, Math;
{$R *.dfm} procedure DisplayTimeDiff(ANow, AThen : TDateTime); var TimeValues : array [0..3] of word; dtDiff : TDateTime; begin dtDiff := ANow - AThen+1; // Jahre if dtDiff < 365 then TimeValues[0] := 0 else TimeValues[0] := YearOf(dtDiff); // Tage TimeValues[1] := DayOf(dtDiff); // Stunden TimeValues[2] := HourOf(dtDiff); // Minuten TimeValues[3] := MinuteOf(dtDiff); ShowMessage(Format('%d Jahre %d Tage %d Stunden %d Minuten', [TimeValues[0], TimeValues[1], TimeValues[2], TimeValues[3]])); end; procedure TForm1.Button1Click(Sender: TObject); var dtNeu, dtAlt : TDateTime; begin dtNeu := StrToDateTime('05.01.2006 10:00'); dtAlt := StrToDateTime('01.01.2006 08:00'); DisplayTimeDiff(dtNeu, dtAlt); end; |
Re: DatumZeit - DatumZeit = Rest In Tagen Stund Minuten Seku
"DayOf" liefert doch nur den tag in dem angegebenen Monat zurück oder? :gruebel:
|
Re: DatumZeit - DatumZeit = Rest In Tagen Stund Minuten Seku
Zitat:
Delphi-Quellcode:
procedure DisplayTimeDiff(ANow, AThen : TDateTime);
var TimeValues : array [0..4] of word; dtDiff : TDateTime; begin TimeValues[0] := trunc(ANow-AThen); dtDiff := Frac(ANow-AThen); DecodeTime(dtDiff, TimeValues[1], TimeValues[2], TimeValues[3], TimeValues[4]); ShowMessage(Format('%d Tage %d Stunden %d Minuten', [TimeValues[0],TimeValues[1],TimeValues[2])); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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