var nextHour: TDateTime;
jetzigeStunde: Integer;
jetzt: TDateTime;
sekBisNextHour: Integer;
i: Integer;
begin
jetzigeStunde := StrToInt(FormatDateTime('h', now));
jetzt:=now;
nextHour :=Date;
nextHour := nextHour + EncodeTime(jetzigeStunde,0,0,0) + 0.0416666666;
sekBisNextHour := Round((nextHour-jetzt)*86400);
for i:=0 to CurrentPlaylist.GetCount-1 do begin
if (CurrentPlaylist.GetItem(i).GetEffectiveDuration/10000000) > (sekBisNextHour) then begin
CurrentPlaylist.GetItem(i).SetColor(clRed);
CurrentPlaylist.GetItem(i).SetColored(true);
end;
end;
end.
Zeile 11
nextHour := nextHour + EncodeTime(jetzigeStunde,0,0,0)Also zuerst wird eine Zeit generiert, die die Zeit am Anfang dieser Stunde repräsentiert (z.B Jetzt ist es 14:30, dann repräsentiert nextHour 14:00:00).
nextHour := nextHour + EncodeTime(jetzigeStunde,0,0,0) + 0.0416666666;Die 0.04166666 steht für eine Stunde. Diese wird dazugezählt, damit nextHour den anfang der nächsten Stunde beinhaltet. Sie errechnet sich foilgendermaßen:
1 = 1 Tag
1/24 = 0,041666 = 1 h
1/1440 = 1minute
wenn du jetzt 5 min vor anfang der nächsten Stunde abfragen möchtest, nimmst du eine Minute (1/1440) und nimmst es mit 55 mal.
grüße, michi