AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vergleich von 2 TDateTime's

Ein Thema von BackOrifice · begonnen am 14. Feb 2009 · letzter Beitrag vom 16. Feb 2009
Antwort Antwort
Seite 2 von 2     12   
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Vergleich von 2 TDateTime's

  Alt 14. Feb 2009, 10:31
genau.
StrToTime('08:00') = 0.3333... Dann gibt die o.g. Rechnung nur 0.9999... statt der gewünschten 1.0
  Mit Zitat antworten Zitat
BoolString

Registriert seit: 2. Feb 2009
Ort: Varel
70 Beiträge
 
RAD-Studio 2009 Pro
 
#12

Re: Vergleich von 2 TDateTime's

  Alt 14. Feb 2009, 11:08
Wenn ich das richtig verstanden habe, dann ging es doch aber nur um Datumswerte. Und dafür müsste die gewählte Variante doch durchaus ausreichend sein. Bei einer Addition von Stunden sieht das Ganze dann tatsächlich anders aus, weil natürlich Bruchteile durch Darstellungsungenauigkeiten unterschlagen werden können. Oder habe ich da jetzt was übersehen?

Jan
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Vergleich von 2 TDateTime's

  Alt 14. Feb 2009, 11:13
Hallo,

@Satty67: Das ist mir schon klar, dass es bei Gleitkommazahlen zu Rundungsprobleme kommen kann.

@ mkinzler: Ich habe nur das Beispiel von hoika nachgestellt und bei mir wird eine 1 ausgegeben und nicht „ergibt z.B. nicht genau 1.0 (24h = 1 Tag)“ .

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Vergleich von 2 TDateTime's

  Alt 14. Feb 2009, 12:05
Hallo,

die Abfrage könnte auch so aussehen:

Delphi-Quellcode:
function TSemesters.IsValidDateToSemester(SemesterId: TSemesterID;
  Date: TDateTime): Boolean;
var SemesterInfo : TSemesterValue;
begin
  ... // SemesterInfo ist ein Record. SemesterBegin und SemesterEnd vom Typ TDate
  Result := {Math.}InRange(Date, StartOfTheDay(SemesterInfo.SemesterBegin),
                                 EndOfTheDay(SemesterInfo.SemesterEnd));
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von BackOrifice
BackOrifice

Registriert seit: 6. Jun 2005
74 Beiträge
 
Delphi 2007 Architect
 
#15

Re: Vergleich von 2 TDateTime's

  Alt 14. Feb 2009, 15:15
Erstmal; Danke euch

Es geht tatsächlich nur um Tage, also die Vorkommastellen eines Doubles. Und dafür sollte ja, nach den Aussagen hier, die Genauigkeit reichen. Ich denke, ich nehm die Methode mit dem Math.InRange =)


Vielen Dank.
Henning
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Vergleich von 2 TDateTime's

  Alt 16. Feb 2009, 08:26
Hallo,

du hast Recht.
Ich wollte mit dem Beispiel nur auf die Gefährlichkeit
des TDateTime hinweisen, wenn man damit rechnet.

Um noch mal auf das Addieren zu kommen.
Delphi-Quellcode:
var
  tdtDateTime: TDateTime;
begin
  tdtDateTime:= StrToTime('08:00')+StrToTime('08:00')+StrToTime('08:00');
  if tdtDateTime=1.0 then
  begin
    // jippi
  end
  else
  begin
    // oops
  end
end;
Bei mir (und bei einem Kunden ... ;( ) landet er in oops .


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:57 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