![]() |
Uhrzeit auf volle Minuten (ab)runden
Hallo Zusammen,
ich zerbreche mir grade den Kopf, wie ich ein TDateTime auf volle Minute ab bzw. aufrunde. Abgerundet werden soll bis zur 30ten Sekunde der Minute. Ab der 31 Sekunde soll aufgerundet werden. Beispiel: 15:08:29 -> 15:08:00 15:08:31 -> 15:09:00 Wie stelle ich das am besten an? Viele Grüße |
AW: Uhrzeit auf volle Minuten (ab)runden
Delphi-Quellcode:
implementation
uses dateUtils; {$R *.dfm} Function RoundTime(T:TDateTime):TDateTime;overload; var y,mo,d,h,n,s,m,ss:Word; inc:Integer; begin DecodeDatetime(T,y,mo,d,h,n,s,m); ss := s; s := 0; Result := EncodeDateTime(y,mo,d,h,n,s,m); if ss>30 then inc := 1 else inc := 0; Result := IncMinute(Result,inc) end; Function RoundTime(T:TTime):TTime;overload; var h,n,s,m,ss:Word; inc:Integer; begin DecodeTime(T,h,n,s,m); ss := s; s := 0; Result := EncodeTime(h,n,s,m); if ss>30 then inc := 1 else inc := 0; Result := IncMinute(Result,inc) end; |
AW: Uhrzeit auf volle Minuten (ab)runden
Perfekt... vielen Dank genau das was ich brauche :-D
|
AW: Uhrzeit auf volle Minuten (ab)runden
Delphi-Quellcode:
x := Round(x * MinsPerDay) / MinsPerDay;
Bankers-Round ... ab durchschnittlich 30,5 Sekunden wird aufgerundet (abwechselnd bei 30 und 31, bzw. ab 0.5 und über 0.5) Falls es wirklich 31 sein soll, dann könnte man diese Sekunde vor dem Runden noch abziehen. |
AW: Uhrzeit auf volle Minuten (ab)runden
Delphi-Quellcode:
Function RoundToMinute(aTime : TDateTime) : TDatetime;
Begin Result := Trunc(aTime*3600 + 0.5)/ 3600; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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