Das ist Overkill. Zudem kann bei der Differenz zweier Float-Zahlen statt 1 durchaus 1.00000001 herauskommen. '< 1' ist also auch nicht geeignet, Rundungsfehler zu kompensieren.
'Trunc' liefert bereits einen Integer-Wert: Die Differenz zweier 'Trunc'-Resultate ist ergo wieder ein Integer. Wozu diesen also in einen Double-Wert umwandeln?
Also wäre ein die Auswertung als Ganzzahl nicht nur logisch richtig, sondern auch einfacher zu verstehen. Die Anzahl der Tage zwischen zwei Daten ist -vom Verständnis her- eine ganze Zahl.
Delphi-Quellcode:
Var
AnzahlTage : Integer;
Begin
AnzahlTage := Trunc (Now) - Trunc(Datum);
Case AnzahlTage Of
+1 : Writeln('Das Datum war gestern');
0 : Writeln('Das Datum ist Heute');
-1 : Writeln('Das Datum ist morgen');
else Writeln ('Das Datum ist irgendwann');
end
...