Einzelnen Beitrag anzeigen

msickel

Registriert seit: 14. Mai 2005
108 Beiträge
 
Delphi 2005 Professional
 
#11

Re: Berechnung von gleichzeitigen Zugriffen

  Alt 1. Apr 2010, 12:54
Zitat von s.h.a.r.k:
Hier mal meine Idee als Algo, nur noch ein wenig optimiert:
Delphi-Quellcode:
type
  TTimePeriod = record
    StartTimestamp : TDateTime;
    EndTimestamp : TDateTime;
  end;

  TTimePeriodArray = array of TTimePeriod;


function GetMaxTimeOverlaps(const ATimePeriods : TTimePeriodArray): Integer;
var
  TimeArray : array [0..1439] of Integer;
  tp : TTimePeriod;
  i : Integer;
  n : Integer;
  IndexStart, IndexEnd : Integer;
  Maximum, Value: Integer;
begin
  // Verteilung der Zeiten auf das Array
  Maximum := 1;
  for i := 0 to Length(ATimePeriods) - 1 do
  begin
    tp := ATimePeriods[i];

    IndexStart := HourOf(tp.StartTimestamp) * 60 + MinuteOf(tp.StartTimestamp);
    IndexEnd := HourOf(tp.EndTimestamp) * 60 + MinuteOf(tp.EndTimestamp);

    for n := IndexStart to IndexEnd do
    begin
      Value := TimeArray[n];
      Inc(Value);
      if (Value > Maximum) then
        Maximum := Value;
      TimeArray[n] := Value;
    end;
  end;
  Result := Maximum - 1;
end;
Das werde ich über Ostern bestimmt mal austesten, danke schon mal

Martin
ich weiss, das ich nichts weiss!
  Mit Zitat antworten Zitat