Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zeitberechnung mit Tagen (https://www.delphipraxis.net/126137-zeitberechnung-mit-tagen.html)

S4SH1981 18. Dez 2008 19:05


Zeitberechnung mit Tagen
 
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;
Dabei zeigt mir das Programm 26:15:00

Ich hätte es aber so, dass es mit 1 Tag 26 Stunden 15 Minuten 00 Sekunden anzeigt.

alzaimar 18. Dez 2008 19:24

Re: Zeitberechnung mit Tagen
 
Der ganzzahlige Anteil der Differenz ist die Anzahl der Tage.

juergen 18. Dez 2008 19:37

Re: Zeitberechnung mit Tagen
 
Hallo S4SH1981,

Idee:
Das Ergebnis direkt überprüfen ob > 24:
If (Difference * 24) div 24) > 0 then
Delphi-Quellcode:
DaySpan()
(function DaySpan(const ANow: TDateTime; const AThen: TDateTime): Double;)

mkinzler 18. Dez 2008 19:45

Re: Zeitberechnung mit Tagen
 
Wenn es um Zeit- oder Datumsberechnungen geht ist ein Blick in die Unit DateUtils immer ratsam

S4SH1981 18. Dez 2008 19:51

Re: Zeitberechnung mit Tagen
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Date1, Date2, Difference : TDateTime;
begin
  Date1 := datetimepicker1.time;
  Date2 := datetimepicker2.Time;
  Difference := Date2 - Date1;
  edit2.Text := inttostr(trunc(difference * 24));
  edit1.Text:= IntToStr(Trunc(Difference * 24)) + FormatDateTime(':nn:ss', Difference);
end;
Der Datetimepicker1 wird per timer immer mit der aktuellen Zeit versorgt.
per datetimepicker2 gebe ich eine beliebige Zeit ein.

Steht der DTP1 auf 20:48 und ich ich setze den DTP2 auf 0:48
ist die Difference auf -20.
Wie schaffe ich es nun, dass der Datumswechsel miteingerechnet wird.

Klar ist, wenn Difference > 24 then 1 Tag.

Mein Programm soll ein einfacher Shutdown werden, den ich entweder auf eine eingegeben Zeit, oder
auf typische Zeitintervalle einstellen kann.

mkinzler 18. Dez 2008 19:53

Re: Zeitberechnung mit Tagen
 
Ähem http://www.delphipraxis.net/internal...=977863#977863

S4SH1981 18. Dez 2008 20:42

Re: Zeitberechnung mit Tagen
 
Der Link bezieht sich auf mein Posting @ MKinzler

mkinzler 18. Dez 2008 20:44

Re: Zeitberechnung mit Tagen
 
Ja auf einen Beitrag von mir


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