Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Uhrzeiten Addieren? (https://www.delphipraxis.net/78720-uhrzeiten-addieren.html)

smart 10. Okt 2006 10:50

Re: Uhrzeiten Addieren?
 
Zitat:

Zitat von Neon-chan
Nein das geht nicht

TTime, TDate und TDateTime sind immer Float-Werte und nicht mit Integer kompatibel

Was genau möchtest du den erreichen?

In einer Eingabe Box soll der Anwender eine gewisse Zeit eingeben z.B. ‚5:20’ also 5 Minuten und 20 Sekunden. (Ist ein String). Jetzt soll diese Zeiteingabe mit einer anderen zusammen gerechnet werden. Gleichzeitig soll diese Zeit dann visuell z. B. an einem Scrollbalken dargestellt werden. Dazu brauche ich dann die Zeit als Integer. Ich brauchen jetzt nur noch eine Umrechnung die aus ‚5:20’ -> 320 macht.

Gruß
Heike

Klaus01 10. Okt 2006 10:56

Re: Uhrzeiten Addieren?
 
TDateTime ist ein Floatwert,
Wobei der Dezimalwert die Tage angibt und der Dezimalbruch den Bruchteil eines Tages.

Mit frac läßt sich der Dezimalbruch aus dem Floatwert heraustrennen.
Damit und mit einer Konstante (1000 oder so) zum Multiplizieren sollte sich dann ein Scrollbalken oder Progressbar betreiben lassen.

Grüße
Klaus

Neon-chan 10. Okt 2006 10:56

Re: Uhrzeiten Addieren?
 
Zur Not kannst du es übe StringList und Delimited String machen

Delphi-Quellcode:

var
  Sekunden:Integer;
  Buffer: TStringList;
begin
  Buffer := TStringList.Create;
  try
    Buffer.Delimiter := ':';
    Buffer.DelimitedText := '5:30'; //hier kommt dann halt deine stringvariable hin

    Sekunden := (StrtoInt(Buffer.Strings[0]) * 60 ) + StrToInt(Buffer.Strings[1]);
  finally
    Buffer.free;
  end;
end;
sollte so klappen, auch wenns sicher eleganter geht ^^

chrisw 10. Okt 2006 10:58

Re: Uhrzeiten Addieren?
 
Also um aus "5:20" "320" zu machen kannst Du folgendes nutzen:

Delphi-Quellcode:

var h,m,s,msec : Word;
    zeit : String;
begin
  Zeit := '5:20';
  decodetime(StrToTime(zeit),h,m,s,msec);
  showmessage(Inttostr(h*60 + m)); // sind 320 Minuten
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 Uhr.
Seite 2 von 2     12   

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