Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.015 Beiträge
 
Delphi 12 Athens
 
#6

AW: Stunden über 24 Addieren

  Alt 5. Aug 2017, 10:39
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat