Hallo,
Zitat:
Code:
function MinutesRounded (const Value : Integer) : Word;
begin
if Value < 5 then
Result := 0
else
Result := 5 * (Value div 5)
end;
Sollte 4..0 div 5 nicht immer 0 ergeben und das komplette if-else damit überflüssig sein
?
Ist schon richtig für 0..4. Nur nicht mehr -15..-6. Mit MinutesRounded (m - 15) durchaus möglich. Aus den (etwas wirren) Vorgaben des TE war nicht klar abzuleiten was er den eigentlich erreichen möchte. Deshalb habe ich die negativen Fälle mit dem Rückgabewert 0 behandelt.
Zitat:
Irgendwie klappt es nicht
Und was klappt nicht? Kannst Du mal Infos liefern?
Hast Du es so schon mal versucht
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
h, m, s, z : Word;
function MinutesRounded (
const Value : Integer) : Word;
begin
Result := 5 * (Value
div 5)
end;
function FormatTime (
const Hour, Minute : Word) :
string;
begin
Result := Format ('
%.2d:%.2d', [Hour, Minute])
end;
begin
DecodeTime (Now, h, m, s, z);
Edit1.Text := FormatTime (h, m);
Edit3.Text := FormatTime (h, MinutesRounded (m));
if m - 15 > -1
then
Dec (m, 15)
else
begin
m := 50;
if h - 1 > -1
then
Dec (h)
else
h := 23
end;
Edit4.Text := FormatTime (h, MinutesRounded (m));
end;
Gruß