Habe mal etwas experimentiert, aber eins verstehe ich nicht (obwohl es klappt) im Doku steht
Code:
EncodeTime codiert die angegebenen Werte für Stunde, Minute, Sekunde und Millisekunde in einen Wert des Typs TDateTime.
[B]Für Hour sind Werte von 0 bis 23 zulässig.[/B]
Die gültigen Werte für Min und Sec liegen zwischen 0 und 59.
Die gültigen Werte für MSec liegen zwischen 0 und 999.
Wenn ich h=23 einstelle bekomme ich 23
x falsches Wert wenn ich aber h=24 eingebe funktioniert es.
Delphi-Quellcode:
function GetShiftNameFromTime ( ATime : TTime ): string;
var
LTime : TTime;
begin
LTime := Frac ( ATime );
if LTime < EncodeTime ( 6, 0, 0, 0 )
then
Result := 'Nachtscicht'
else if LTime < EncodeTime ( 14, 0, 0, 0 )
then
Result := 'Frühschicht'
else if LTime < EncodeTime ( 22, 0, 0, 0 )
then
Result := 'Spätschicht'
else
Result := 'Nachtschicht';
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Edit1.Text := GetShiftNameFromTime ( Now );
end;
procedure TForm1.Timer2Timer(Sender: TObject);
var
h, m, s, ms: Word;
begin
DecodeTime(Time, h, m, s, ms);
if (h >= 6) and (h< 24) then edit2.Text:=DateToStr(now)
else
edit2.Text:=DateToStr(now -1);
end;
end.