Das das so ist, scheint nun jeder begriffen zu haben, aber klar im Sinne von 'klarer Code' ist das mit Sicherheit nicht, eher das Gegenteil.
Interessanterweise ist das für mich eben gerade ein Beispiel von klarem Code. "Eigentlich" gibt es nur ein TDateTime, um aber für einige Aufgaben zumindest deklaratorisch klarzumachen, was ein spezieller Wert enthält, wird der Name angepasst. Klar, das könnte auch über den Namen der Variablen passieren, aber sowas findet sich doch häufiger... diverse Bibliotheken definieren sich ihre eigenen Stringtypnamen, die auch "identisch" mit den normalen sind. Oder wir alle haben schonmal ne MeineUnitException = class(
Exception) ohne mehr dran verwendet, oder?
Es ist schon etwas schwer, eine Begründung dafür zu liefern, das ein Wert vom Typ 'TDate' auch eine Uhrzeit enthält,
Und das ist dann eben "Schuld" des Programmierers. Da ist der Wert extra schon als ''TDate'' deklariert, und der Kerl weist auch ne Uhrzeit zu...