AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fehler in EncodeDateTime für 24 Uhr

Ein Thema von KPBecker · begonnen am 27. Dez 2011 · letzter Beitrag vom 27. Dez 2011
Antwort Antwort
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#1

Fehler in EncodeDateTime für 24 Uhr

  Alt 27. Dez 2011, 18:06
Delphi-Version: 2007
Hallo, Delphi-Praktiker,

die Dokumentation schreibt, daß bei EncodeDateTime für Stunde = 24 dann Minute, Sekunde und Millisekunde Null sein müssen, das ist auch plausibel.

Mein Problem: Diese Konstellation führt zu einem Laufzeitfehler:
"... Exception der Klasse EConvertError mit der Meldung '2011.9.20 24:0:0,0' ist keine gültige Datums- und Uhrzeitangabe ...":

Ist das nur bei mir oder nur in dieser Delphi-Version (2010, nicht 2007) so?

Mit besten Grüßen
Klaus-Peter

Geändert von KPBecker (27. Dez 2011 um 18:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#2

AW: Fehler in EncodeDateTime für 24 Uhr

  Alt 27. Dez 2011, 18:29
Hast du auf einer Digitaluhr schon mal 24:00:00 gesehen ?
Glückauf
  Mit Zitat antworten Zitat
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#3

AW: Fehler in EncodeDateTime für 24 Uhr

  Alt 27. Dez 2011, 18:34
Hallo, Guiness,

die Frage bezog sich eher nicht auf meine Digitaluhr.
Ich bekomme Datum/Uhrzeit geliefert und möchte es in TDateTime umsetzen.
Laut Delphi-Doku soll 24:00:00 ja auch möglich sein ! (URL="http://docwiki.embarcadero.com/VCL/de/DateUtils.EncodeDateTime"][/URL]

Klaus-Peter

Geändert von KPBecker (27. Dez 2011 um 18:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.709 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Fehler in EncodeDateTime für 24 Uhr

  Alt 27. Dez 2011, 18:49
Auf welche Doku beziehst du dich denn?
Meine D2010-OH meint genau das Selbe wie Delphi-Referenz durchsuchenTDateTime und da seh ich nichts davon.

[edit]
Unverlinkten Link übersehn ... mal sehn ...

Hmmm, Delphi-Referenz durchsuchenEncodeDateTime nutzt intern Delphi-Referenz durchsuchenTryEncodeTime und dort findet man sowas
Delphi-Quellcode:
function TryEncodeTime(Hour, Min, Sec, MSec: Word; out Time: TDateTime): Boolean;
begin
  Result := False;
  if (Hour < HoursPerDay) and (Min < MinsPerHour) and (Sec < SecsPerMin) and (MSec < MSecsPerSec) then
    ...
Also nichts mit 24:00:00:000.
Dann stimmt wohl die OH nicht mehr mit dem Code überein.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (27. Dez 2011 um 18:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.135 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Fehler in EncodeDateTime für 24 Uhr

  Alt 27. Dez 2011, 18:50
Das ist ein Fehler in der Dokumentation. Ein schneller Blick in den Quelltext zeigt, dass das explizit abgefangen wird:
Delphi-Quellcode:
  if (Hour < HoursPerDay) and (Min < MinsPerHour) and (Sec < SecsPerMin) and (MSec < MSecsPerSec) then
// wobei HoursPerDay natürlich 24 ist, daher geht nur bis 23
// EDIT:
Das müsste also <= HoursPerDay sein, damit das geht. Das wirst du also schnell selbst berechnen müssen.

@himitsu:
Er hat den Link ja jetzt auch angegeben:
Zitat:
Gültige Stundenwerte liegen zwischen 0 und 24. (Wird 24 als Wert für die Stunden angegeben, müssen die Werte für Minute, Sekunde und Millisekunde Null sein, da der resultierende TDateTime-Wert Mitternacht zum Ende des angegebenen Tages und damit den Anfang des nächsten Tages repräsentiert).
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke (27. Dez 2011 um 18:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.709 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Fehler in EncodeDateTime für 24 Uhr

  Alt 27. Dez 2011, 19:01
Jupp, und in Delphi 7 war das auch bereits so ... da stimmt die OH wohl schon eine ganze Weile nicht mehr.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#7

AW: Fehler in EncodeDateTime für 24 Uhr

  Alt 27. Dez 2011, 19:09
Tja, so isses dann halt mal.

Vielen Dank,
Klaus-Peter
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf