![]() |
zahl in Uhrzeit darstellen
Moin,
also meine Frage ist: Wie kann ich zb. die Zahl 3000 in einer Uhrzeit darstellen, zb. in einem Label. Die 3000 soll 3000 Sekunden bedeuten. MfG |
Re: zahl in Uhrzeit darstellen
Delphi-Quellcode:
function FormatTime(t: int64): string; { (gettime by Assarbad) }
begin result := IntToStr(t mod 1000); case t mod 1000 < 100 of true: result := {'0' +} result; end; t := t div 1000; // -> seconds {result := IntToStr(t mod 60) + ' Sekunden ' + result; case t mod 60 < 10 of true: result := '0' + result; end;} t := t div 60; //minutes result := IntToStr(t mod 60) + ' Min ' + result; case t mod 60 < 10 of true: result := '0' + result; end; t := t div 60; //hours result := IntToStr(t mod 24) + ' Std ' + result; case t mod 60 < 10 of true: result := '0' + result; end; result := IntToStr(t div 24) + ' T ' + result; end; |
Re: zahl in Uhrzeit darstellen
Delphi-Quellcode:
Mögest mir den auch kruz erklären?
function FormatTime(t: int64): string; { (gettime by Assarbad) }
begin result := IntToStr(t mod 1000); case t mod 1000 < 100 of true: result := {'0' +} result; end; t := t div 1000; // -> seconds {result := IntToStr(t mod 60) + ' Sekunden ' + result; case t mod 60 < 10 of true: result := '0' + result; end;} t := t div 60; //minutes result := IntToStr(t mod 60) + ' Min ' + result; case t mod 60 < 10 of true: result := '0' + result; end; t := t div 60; //hours result := IntToStr(t mod 24) + ' Std ' + result; case t mod 60 < 10 of true: result := '0' + result; end; result := IntToStr(t div 24) + ' T ' + result; end; |
Re: zahl in Uhrzeit darstellen
@Luckie: Sei doch bitte nicht immer so wortkarg und erläutere doch die wichtigen Dinge. Hier beispielsweise, dass man die Zeit in Millisekunden angeben muss. ;)
Edit: Ging es nicht auch einfach so?
Delphi-Quellcode:
function FormatTime(t: int64): string;
begin t := t div 1000; // seconds result := IntToStr(t mod 60) + ' Sek ' + result; t := t div 60; // minutes result := IntToStr(t mod 60) + ' Min ' + result; t := t div 60; // hours result := IntToStr(t mod 24) + ' Std ' + result; result := IntToStr(t div 24) + ' T ' + result; end; |
Re: zahl in Uhrzeit darstellen
Wenn ich ganz ehrlich bin steig ich da noch net ganz durch^^
|
Re: zahl in Uhrzeit darstellen
Zitat:
![]() ![]() Aufgerufen wird das ganze zum Beispiel so:
Delphi-Quellcode:
Da der Parameter die Anzahl der Millisekunden erwartet, müsstest du die Sekunden erst umrechnen (mit 1000 multiplizieren), natürlich kannst du auch zu Beginn der Funktion folgendes aufrufen:
ShowMessage(FormatTime(3000000));
// 3000000 = 3000 * 1000 // ms s
Delphi-Quellcode:
dann kannst du direkt die Anzahl der Sekunden übergeben.
t := t * 1000;
|
Re: zahl in Uhrzeit darstellen
Hi,
so geht es auch:
Delphi-Quellcode:
Grüße vom marabu
uses
DateUtils; // const SecsPerDay = 86400; function SecondsToStr(nSeconds: Cardinal): String; begin Result := DateTimeToStr2(nSeconds / SecsPerDay); end; PS: ![]() |
Re: zahl in Uhrzeit darstellen
Zitat:
Und Cardinal ist ein Typ gell? |
Re: zahl in Uhrzeit darstellen
Das hast du genau richtig erkannt.
marabu |
Re: zahl in Uhrzeit darstellen
Also Luckie, von deiner langen Funktion bin ich jetzt etwas überrascht... Ich würd das in einen 2-Zeiler packen :mrgreen:
Delphi-Quellcode:
function SecToStr (t : int64) : string ;
var DT : TDateTime ; begin DT := t / 60 / 60 / 24 ; Result := format ('%s Tage, %s',[Trunc(TD),formatdatetime ('h Stunden, n Minuten und s Sekunden',DT)]) ; end ; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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