Ich glaube, da du keine TDateTime Struktur sondern eine Sekundenangabe hast, musst du diese einfach nur umrechen. Meine Variante sieht so aus:
Delphi-Quellcode:
function TFormMain.SecsToTime(dSec: LongWord): String;
begin
// mindenstens 1 Tag
if dSec >= 86400 then
Result := IntToStr(dSec div 86400) + ' Tag(e), ' + IntToStr((dSec - ((dSec div 86400) * 86400)) div 3600) + ' Stunde(n), ' + IntToStr((dSec - ((dSec div 3600) * 3600)) div 60) + ' Minute(n), ' + IntToStr(dSec - ((dSec div 60) * 60)) + ' Sekunde(n)'
// mindestens 1 Stunde
else if dSec >= 3600 then
Result := IntToStr(dSec div 3600) + ' Stunde(n), ' + IntToStr((dSec - ((dSec div 3600) * 3600)) div 60) + ' Minute(n), ' + IntToStr(dSec - ((dSec div 60) * 60)) + ' Sekunde(n)'
// mindestens 1 Minute
else if dSec >= 60 then
Result := IntToStr(dSec div 60) + ' Minute(n), ' + IntToStr(dSec - ((dSec div 60) * 60)) + ' Sekunde(n)'
// nur Sekunden
else
Result := IntToStr(dSec) + ' Sekunde(n)';
end;
Ich behaupte aber nicht, dass das schon die effektivste Methode ist. ;)
Zumal sie keine Abfrage bezüglich Stunde/Stunden (also Wert gleich 1 oder ungleich 1) hat.
Aber da du ja eh nur h,m,s schreiben willst sollte das ja kein Problem sein.