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?