![]() |
Zeitspanne in Minutenraster auflösen
Hallo Delphipraxis,
ich hoffe mal der Titel ist nicht allzu doof gewählt. Ich habe das Problem das ich eine Zeitspanne in ein Raster einteilen muss. Habe schon mehrere Sachen überlegt glaub aber nicht das was vernünftiges bei meinen Ideen dabei war. Vielleicht hat einer von euch das schon mal gemacht. Ich habe also eine Zeitspanne X "08:13 - 10:08 Uhr" die 1 Stunde und 55 Minuten beträgt. Dazu habe ich ein Minutenraster von 15 Minuten, das variabel ist (15, 30, 60, 90, 240 Minuten) Punkt 1 Nun brauch ich eine Funktion die mir das ganze in dieses Raster aufteilt, ungefähr so Zeitspanne 08:13 - 10:08, Raster = 15 Minuten -------------------------------- 08:00 - 08:15: 2 Minuten 08:15 - 08:30: 15 Minuten 08:30 - 08:45: 15 Minuten 08:45 - 09:00: 15 Minuten 09:00 - 09:15: 15 Minuten 09:15 - 09:30: 15 Minuten 09:30 - 09:45: 15 Minuten 09:45 - 10:00: 15 Minuten 10:00 - 10:15: 8 Minuten Punkt 2 Das ganze habe ich gedacht packe ich in eine Klasse die ich in einer Objektliste stecke damit ich das schön bequem in einer Schleife durchlaufen lassen kann wenn die Zeit aufgerastert ist. Kann mir jemand helfen bei Punkt 1? Den Rest müsste ich eigentlich alleine hinbekommen aber irgendwie sitz ich grad bei dem aufteilen der Zeit in das Raster auf dem Schlauch... :gruebel: Danke schonmal, Michael |
Re: Zeitspanne in Minutenraster auflösen
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:
Der Rest sollte einfach sein.
// uses DateUtils;
// gridSize ist das Minutenraster function GetIntervalMin(dt: TDateTime; gridSize: Integer): TDateTime; begin Result := OneMinute * (MinuteOfTheDay(dt) div gridSize) * gridSize; end; Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz