Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Uhrzeit auf volle Minuten (ab)runden (https://www.delphipraxis.net/167632-uhrzeit-auf-volle-minuten-ab-runden.html)

duff 10. Apr 2012 14:09

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

Bummi 10. Apr 2012 14:18

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;

duff 10. Apr 2012 14:35

AW: Uhrzeit auf volle Minuten (ab)runden
 
Perfekt... vielen Dank genau das was ich brauche :-D

himitsu 10. Apr 2012 14:49

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.

Iwo Asnet 10. Apr 2012 15:29

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 18:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz