Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Double in Zeit umrechnen?


McManiaC - So 05.10.03 13:15
Titel: Double in Zeit umrechnen?
Da ich keine Ahnung hab, in welches Unterforum sowas gehört, stell ich hier mal meine Frage:

Kann man irgendwie einen Double (bzw. eine normale Fließkommazahl) in Zeit (TTime und/oder TDateTime) umrechnen? Mein Taschenrechner z.B. rechnet "3,2727272727..." per Knopfdruck in "3:16:21" um (h:mm:ss). Geht das mit Delphi?

Sorry, wenn die Frage schon mehrfach hier vorkam, ich hab scho gsucht, aber entweder ich bin zu dumm und hab nix gfunne oder es gibt wirklich nix zu dem Thema ;)



Gruß, McManiaC


UGrohne - So 05.10.03 17:52

Ich weiß nicht, ob es dafür eine spezielle Funktion gibt, aber ich würde es einfach mal von Hand probiern:
Die Vorkommastellen sind ja die Stunden, die hast Du also schon (mit Trunc kriegst Du die glaub ich, das schneidet Nachkommastellen ab). Die Nachkommastellen kriegst Du dann, indem Du die Stunden abziehst.

Diese Zahl (in diesem Fall 0,2727...) multiplizierst Du mit 60, die Vorkommastellen sind damit wieder die Minuten, die Nachkommastellen multiplizierst Du wie oben mit 60 und hast die Sekunden.

Das is jetzt von Hand, aber kann grad net nachschauen, ob's schon eine Funktion dafür gibt ;-)


Keldorn - So 05.10.03 18:18

Hallo

Delphi-Quelltext
1:
2:
3:
  label1.Caption := FormatDateTime('hh:mm:ss',3.2727272727 / 24);
oder
  label1.Caption := FormatDateTime(LongTimeFormat,3.2727272727 / 24);

geht auch. Du mußt dir nur im klaren sein, was deine 3.27 darstellt (stunden) und das in einen Tdatetimewert umrechen (/24)

Mfg Frank


McManiaC - Mo 06.10.03 16:02

Danke...

@UGrohne: Yep, so hatte ich es auch zuerst. Allerdings erspart mir letztere Version doch einiges an schreibarbeit und is auch sonst viel besser... ;)



Gruß, McManiaC


UGrohne - Mo 06.10.03 16:05

Jupp, stimmt, die Funktion ist mir zu dem Zeitpunkt nicht eingefallen, aber in dem Moment, als Kel sie präsentierte hatte ich den Geistesblitz ;-)