Einzelnen Beitrag anzeigen

DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#1

Problem mit Zeiten-Addition

  Alt 24. Nov 2009, 10:23
Servus.

Also ich habe mich jetzt schon seit mehreren Tagen mit der Addition von Zeiten beschäftigt, und stoße aber immer wieder an meine Grenzen.

Ausgangssituation:
Ich will die komplette Messzeit einer Anlage erfassen. Ich muss es Ablaufbedingt so lösen, dass ich einen String aus einer Datenbank mit der aktuellen Laufzeit bekomme (z.B. 65:55:12 -> 65 Stunden 55 Minuten 12 Sekunden) und dann immer Zeiten dazu addiere.
Dafür habe ich folgende Funktion geschrieben:
Delphi-Quellcode:
function TFrmMain.AddTimes(Time1, Time2: TTime; var TimeSum: TTime): Boolean;
var
  Std, Min, Sec : Integer;
  stdStr, MinStr: String;
  Uebertrag : Integer;
begin
  Sec := SecondOf(Time1) + SecondOf(Time2);
  Min := MinuteOf(Time1) + MinuteOf(Time2);
  Std := HourOf(Time1) + HourOf(Time2);

  if (Sec mod 60) > 0 then
  begin
    Sec := Sec mod 60;
    Min := Min + 1
  end;

  if (Min mod 60) > 0 then
  begin
    Min := Min mod 60;
    Std := Std + 1
  end;

  TimeSum := EncodeTime(Std,Min,Sec,0);

  Result := TRUE;
end;
Das Problem ist nun, dass TTime nur maximal 24 Stunden unterstützt und dann gibts Konvertierungsfehler. Nun könnte ich ja alles auf Stringbasis berechnen, aber das wird dann ja immer komplizierter. Wie würdet Ihr das denn lösen?
  Mit Zitat antworten Zitat