// Hiermit kann man eine Zeitangabe auf eine bestimmte Minutenzahl
// runden. Im Beispiel wird auf eine Viertelstunde gerundet.


// Getestet mit D4 unter XP

type 
  Art = (abrunden, aufrunden, automatisch); 
  Runden = 1..60; 
 
function RundeZeit(T: TTime; Minuten: Runden; Rundungsart: Art): string; 
var 
  Zusatz, Hour, Min, Sec, MSec: Word; 
begin 
  DecodeTime(T, Hour, Min, Sec, MSec); 
  case Rundungsart of 
    abrunden: Zusatz := 0; 
    aufrunden: Zusatz := Minuten; 
  else begin 
      Zusatz := 0; 
      Min := Min + Minuten div 2; 
      inc(Min, ord(Sec >= 30)); 
    end; 
  end; 
  Min := (Min div Minuten) * Minuten + Zusatz; 
  if Min > 59 then begin 
    inc(Hour); 
    dec(Min, 60); 
  end; 
  if Hour > 23 then Hour := 0; 
  Result := FormatDateTime('hh:mm', EncodeTime(Hour, Min, Sec, MSec)); 
end; 
 
 
// Beispielaufruf 
 
procedure TForm1.Button3Click(Sender: TObject); 
begin 
  Label1.Caption := RundeZeit(StrToTime('13:47:29'), 15, automatisch); 
end;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke