Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Zeitsummen > 24h als string formatieren

  Alt 7. Jul 2005, 09:20
Hi,

natürlich kommen so Ungenauigkeiten rein. So geht es besser:

Delphi-Quellcode:
function SumOfDateTime(dta: array of TDateTime): TDateTime;
var
  i: integer;
  mins: integer;
  isNegative: boolean;
begin
  mins := 0;
  for i := Low(dta) to High(dta) do begin
    dt := dta[i];
    isNegative := dt < 0;
    dt := Abs(dt);
    if isNegative
      then mins := mins - Trunc(dt) * MinsPerDay - MinuteOfTheDay(dt)
      else mins := mins + Trunc(dt) * MinsPerDay + MinuteOfTheDay(dt);
  end;
  isNegative := mins < 0;
  mins := Abs(mins);
  Result := mins div MinsPerDay;
  mins := mins mod MinsPerDay;
  Result := Result + EncodeTime(mins div 60, mins mod 60, 0, 0);
  if IsNegative then
    Result := -Result;
end;
Freundliche Grüße vom marabu


PS: Jetzt teile ich die Minuten durch 60, damit die übliche Stundenzahl heraus kommt. Außerdem habe ich den Code angepasst, damit er nicht nur mit Bruchteilen eines Tages rechnet. Negative Werte werden jetzt auch verarbeitet.
  Mit Zitat antworten Zitat