Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Standardwert für "ungültiges TDateTime" (https://www.delphipraxis.net/179620-standardwert-fuer-ungueltiges-tdatetime.html)

Der schöne Günther 20. Mär 2014 10:25

Delphi-Version: XE5

Standardwert für "ungültiges TDateTime"
 
Delphi-Quellcode:
TDateTime
ist ja im Endeffekt nur ein
Delphi-Quellcode:
Double
.

Jetzt frage ich mich: Angenommen es soll ein Datum/Uhrzeit zurückgegeben werden. Wäre es im Delphi-Land nun üblich, bei einem
Delphi-Quellcode:
TDateTime
auf
Delphi-Quellcode:
NaN
(oder vlt.
Delphi-Quellcode:
+/- INF
) zu prüfen? Also als Standard-Antwort wenn etwas keinen Datumswert hat?

Habe ich bislang noch nie gesehen, deswegen wahrscheinlich nicht, oder?

mkinzler 20. Mär 2014 10:45

AW: Standardwert für "ungültiges TDateTime"
 
der Standard für Double ist 0, was dem 31.12.1899 23:59:59 entspricht (1 ist 01.01.1900 00:00)

Uwe Raabe 20. Mär 2014 10:47

AW: Standardwert für "ungültiges TDateTime"
 
Delphi-Quellcode:
TryFloatToDateTime
könnte da auch gute Dienste leisten.

Der schöne Günther 20. Mär 2014 11:33

AW: Standardwert für "ungültiges TDateTime"
 
Hm,
Delphi-Quellcode:
TryFloatToDateTime
gibt True zurück, wenn das Datum zwischen 01.01.0100 00:00:000,000 (-657434.0) und 31.12.9999 23:59:59.999 (2958465.99999) liegt.

Popov 20. Mär 2014 11:35

AW: Standardwert für "ungültiges TDateTime"
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1252710)
Delphi-Quellcode:
TryFloatToDateTime
könnte da auch gute Dienste leisten.

Was ist ein falsches Datum?

Eine Funktion die das Datum prüft ist nicht schlecht, aber TryFloatToDateTime prüft nicht einen String auf korrektes Datum, sondern nur ob das Datum sich in einem Zeitraum befinden, also 01.01.0100 bis 31.12.9999.

EDIT:

Ich sehe, es gibt noch TryEncodeDate, TryEncodeTime, dann noch Try's für einzelne Tage, Monate usw., TryJulianDateToDateTime, TryModifiedJulianDateToDateTime, TryRecodeDateTime, TryStrToDate (!), TryStrToDateTime, usw.

bernau 20. Mär 2014 11:40

AW: Standardwert für "ungültiges TDateTime"
 
Zitat:

Zitat von mkinzler (Beitrag 1252709)
der Standard für Double ist 0, was dem 31.12.1899 23:59:59 entspricht (1 ist 01.01.1900 00:00)

Also bei mir ist

0 = 30.12.1899 00:00
0.5 = 30.12.1899 12:00
1 = 31.12.1899 00:00


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz