Thema: Delphi Datum / Zeit Vergleichen

Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Datum / Zeit Vergleichen

  Alt 31. Okt 2006, 16:53
Zitat von mymuschy:
Warum bekomme ich bei folgender Abfrage das Ergebnis '01.01.2000 09:58:00'?
Ich hatte '01.01.2000 10:02:00' erwartet.
DateTimeToStr(StrToDateTime('01.01.2000 10:00:00') + StrToDateTime('01.01.1000 00:02:00') - StrToDateTime('01.01.1000 00:00:00')
Grund: Wenn Datumswerte vor dem 30.12.1899 liegen, dann werden diese intern (numerisch) als negative Werte dargestellt, allerdings in einer irgendwie etwas unlogischen (bizarren) Weise und weswegen einfach die normalen Rechnungen damit nicht mehr funktionieren!

Z.B. wird also der Datumswert 30.12.1899 mit dem internen Wert 0 dargestellt. Der 01.01.1000 wäre dann also 328716 Tage davor, ergo beträgt der interne Wert einer dazugehörenden DateTime-Größe -328716. So weit so gut. Jetzt müsste aber ein Zeitpunkt, der 2 Minuten näher an dem 30.12.1899 liegt, dementsprechend eigentlich auch intern etwas näher an der 0 (also dem 30.12.1899) angesiedelt sein. Tut er aber nicht!!! Anstatt dass diese 2 Minuten den Abstand zur 0 entsprechend verringern würden, wird dieser dadurch nur nochmals vergrößert (d.h. dieser 2 Minutenanteil wird einfach nur so hinters Komma drangehängt, ohne eigentlich richtig reingerechnet zu werden! Warum auch immer.) ...und wegen dieser internen (imho) Unlogik können auch diese ansonsten so normalen schönen Rechnungen mit derartigen Datumswerten (älter als 30.12.1899) nicht mehr aufgehen.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat