![]() |
AW: TDate enthält Uhrzeit?
Es ist schon etwas schwer, eine Begründung dafür zu liefern, das ein Wert vom Typ 'TDate' auch eine Uhrzeit enthält, ein Wert vom Typ 'TTime' auch das Datum und 'TDateTime' beides. Weiterhin ist es nicht leicht, die Existenz der drei Datentypen zu rechtfertigen, wo es einer genauso täte.
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. Verwirrend. :freak: |
AW: TDate enthält Uhrzeit?
Delphi-Quellcode:
type
TDateOnly= class(TInterfacedObject) private FValue:Double; procedure SetValue(const Value: Double); Property value:Double Read Fvalue Write SetValue ; End; implementation {$R *.dfm} procedure TDateOnly.SetValue(const Value: Double); begin Fvalue := Trunc(Value); end; procedure TForm5.Button1Click(Sender: TObject); var d:TdateOnly; begin d.value := now; Showmessage(DateTimeToStr((d.value))); end; |
AW: TDate enthält Uhrzeit?
Zitat:
Zitat:
|
AW: TDate enthält Uhrzeit?
Zitat:
|
AW: TDate enthält Uhrzeit?
Zitat:
hm doch genau das funktionert ja - was mich auch dazu veranlasst hatte diesen Thread hier zu eröffnen.
Code:
procedure Test(ADate : TDate);
begin showmessage(DateTimeToStr(ADate)); end; procedure TForm1.Button1Click(Sender: TObject); var d : TDateTime; begin d := Now; Test(d); end; |
AW: TDate enthält Uhrzeit?
Zitat:
Delphi-Quellcode:
vor Value übersehen. (Den Doppelpunkt darfst du gerne weglassen. :mrgreen:)
var
|
AW: TDate enthält Uhrzeit?
Zitat:
Nach deiner Sichtweise könnten wir auch mit einem einzigen Zahlentyp aufwarten: 'TNumber', denn es ist ja die Schuld des Programmierers, wenn der Code dadurch nicht klar genug ist. Ich kann deine Sichtweise nachvollziehen, aber die Schlußfolgerung ist imho falsch. Zitat:
Zitat:
Ich verlange von meinen Datentypnamen, das das draufsteht, was drin ist. Nicht mehr und nicht weniger. TDate, TTime und TDateTime sollten nicht zuweisungskompatibel sein, denn ein TDateTime ist genaugenommen ein genauer Zeitpunkt (innerhalb der bekannten Grenzen), während ein TDate einfach nur ein Datum und TTime nur eine Zeit darstellen sollte. Desweiteren ist bei diesem Datentyp nicht zu vermitteln, wie die Differenz zwischen zwei Zeitpunkten wieder ein Zeitpunkt sein kann, das ist bescheuert und schlicht und ergreifend falsch. Genauso hirnrissig wie z.B. die Differenz zwischen zwei Temperaturangaben wieder als Temperatur anzugeben. Zwischen 5°C und 20°C liegen eben nicht 15°C sondern 15 K. Delphi halt. Pragmatik und zum-frickeln-einladend-praktisch kommt vor OOP. Das macht den jedoch Charme der Sprache aus. |
AW: TDate enthält Uhrzeit?
Zitat:
Zitat:
Genau so ist eine Differenz von 15°C gleich einer Differenz von 15K, die Einheiten sind ja gleich groß. Ich habe jetzt schon ein paar Minuten nachgedacht und die Zeit ist die einzige Skala, wo so markant zwischen Zeitpunkten und Zeiträumen unterschieden wird... |
AW: TDate enthält Uhrzeit?
Zitat:
Zitat:
![]() Zitat:
Nachtrag: Zitat:
|
AW: TDate enthält Uhrzeit?
Ich zitiere mal aus dem Link:
Zitat:
Das mit der Entfernung ist so ne Sache. Wenn ich sage "Fulda ist 100km entfernt und Würzburg 200km" dann hat die Differenz auch wieder die Einheit km. In C# gibt es ja Point und Size und ich habe da auch schon ein paar Mal konvertiert - vornehmlich von Size zu Point ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz