Hallo Michael,
wenn du den Tag in rechts halboffene Zeitintervalle aufteilst, dann liefert dir diese Funktion das Intervall-Minimum für einen gegebenen Zeitpunkt:
Delphi-Quellcode:
// uses DateUtils;
// gridSize ist das Minutenraster
function GetIntervalMin(dt: TDateTime; gridSize: Integer): TDateTime;
begin
Result := OneMinute * (MinuteOfTheDay(dt) div gridSize) * gridSize;
end;
Der Rest sollte einfach sein.
Grüße vom marabu