Geht das nicht einfacher, wenn man direkt in milliseconds arbeitet?
Delphi-Quellcode:
var
start, ende, dauer : Int64;
datumswert: TDatetime;
begin
start := GetTickCount;
// hier kommt die ganz lange Funktion
ende := GetTickCount;
dauer:= ende - start;
// und jetzt noch reine Mathematik oder per Format() ins gewünschte Ausgabeformat bringen zb.:
datumswert:= dauer / MSecsPerSec / SecsPerDay;
showmessage(FormatDateTime('d" Tage":" "m" Monate":" "y" Jahre":" "h" Stunden":" "n" Minuten":" "s" Sekunden ":" "z" Millisekunden"',datumswert));