![]() |
Real in eine Zeitangabe umwandeln
Hallo, ich habe vor einen Real Wert in eine Zeitangabe umzuwandeln.
Ich habe mir dann das "gebastelt":
Delphi-Quellcode:
Gibt mir bei "1,568" --> 00:01:34 aus.
type
TPTime = record Hours, Minutes, Seconds: integer; end; function RealToTime(RealTime: Real): TPTime; begin; Result.Seconds := Round(Frac(RealTime) * 60); Result.Hours := Trunc(Int(RealTime) / 60); Result.Minutes := Round(Frac(Int(RealTime) / 60) * 60); end; Allerdings hab ich zweifel das es die beste Lösung ist, sowas zu machen da es bei mir wirklich immer ganz genau sein muss. Und denke Profis machen das anders^^ Also wie kann man das noch machen, oder gibt es eine vorgefertigte Funktion für sowas, die ich mal wieder über sehen hab?? |
Re: Real in eine Zeitangabe umwandeln
Ist TTime nicht eh ein Real?
|
Re: Real in eine Zeitangabe umwandeln
Zitat:
@Topic: Die Minutenumwandlung sieht komisch aus, aber sonst fällt mir kein besserer Weg ein - außer dem obligatorischen: "Wenns ganz genau sein muss, keine Gleitkommazahlen verwenden" "Ganz genau" solltest du aber definieren: Bis 8 Stellen kommt man mit nem Single schon iirc |
Re: Real in eine Zeitangabe umwandeln
Delphi-Quellcode:
oder
function RealToTime(RealTime: Real): TPTime;
var i: Integer; begin i := Round(RealTime * 60); // i = Sekunden Result.Seconds := i mod 60; Result.Minutes := (i div 60) mod 60; Result.Hours := i div 3600; end;
Delphi-Quellcode:
function RealToTime(RealTime: Real): TPTime;
var i: Integer; begin DecodeTime(RealTime / 1440, Result.Hours, Result.Minutes, Result.Seconds, i); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 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