Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Datumsüberschneidungen

  Alt 7. Feb 2012, 19:54
Einfache Lösung anhand folgender Erklärung:

Strukturelle Verwaltung der Ausfallsdaten sehen ~so aus:
Delphi-Quellcode:
TAusfallZeit = record
  Von: TDateTime;
  Bis: TDateTime;
end;

var
  AusfallZeiten: Array of TAusfallZeit;
Im AusfallZeiten Array hast du nun die oben gepostete (sortierten) Liste.

Lösungs-Algorithmus
Code:
Schleife 1
- gehe jedes (bis zum Vorletzten) Element e im Array durch
- schau, ob e.Bis > nächstes Element.Von
- Falls ja, dann "merge" sie. dh lösche beide Elemente, erstelle ein Neues, dessen "Von" = e.Von und "Bis" = nächstes Element.Bis

Schleife 2
- Summiere die Stunden von "Von" bis "Bis" auf
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat