Ich gehe mal von einem Übungs-Projekt aus...
Also Basis-Klasse
Delphi-Quellcode:
TTimeUnity = class
FChildUnitys : array of TTimeUnity; // forward-Deklaration nicht vergessen
FUnitySegemnt : Integer;
public
function Add(TimeLine : TypNachWunsch) : TTimeUnity
property UnitySegment : Integer read FUnitySegment
...um nur einen Teil der Idee zu visualisieren.
- Als Basis wird z.B. Kalender : TTimeUnity definiert.
- Ein Aufruf von Add lässt prüfen, ob der 1. Teil der TimeLine (hier 2009) schon eine ChildUnity hat (Timeline z.B. 2009;11;01;10;12;00)
- Nein anlegen (Child merkt sich seinen Wert in UnitySegment)
- Ja mit gekürzter TimeLine aufrufen.
Ein Prüfen/Aufruf erfolgt, bis Timeline leer ist. Rückgabe an Kalender sollte die kleinste angelegte TimeUnity sein.
Für die Timeline könnte man sich auch ein dyn. Array vorstellen oder die Fähigkeit der Klasse, die richtige Position aus dem datum selbst zu schneiden.