Da bisher nichts über die verwendete Delphi-Version gesagt wurde, werfe ich mal eine Lösung mit TTimeSpan ein. Sicher nicht die schnellste Lösung, sieht aber etwas eleganter aus:
Delphi-Quellcode:
program Project259;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
System.TimeSpan,
System.Classes;
function GetTimeSum(
const AValues:
array of string): TTimeSpan;
var
CurrentValue:
string;
begin
Result := TTimeSpan.Zero;
for CurrentValue
in AValues
do begin
Result := Result + TTimeSpan.Parse(CurrentValue);
end;
end;
procedure Main();
var
ts: TTimeSpan;
begin
ts := GetTimeSum(['
05:00', '
10:00', '
13:30', '
03:00']);
Writeln(Format('
%.2d:%.2d', [Trunc(ts.TotalHours), ts.Minutes]));
end;
begin
try
Main;
except
on E:
Exception do
Writeln(E.ClassName, '
: ', E.
Message);
end;
Readln;
end.