Forum: Die Delphi-IDE
by himitsu,
21. Aug 2014
Und wenn du jetzt in allen geprüften Situationen zufällig auf funktionierende Fälle triffst? :tongue:
Frag mal den Murphy :angel:
Forum: Die Delphi-IDE
by himitsu,
21. Aug 2014
Ja, und nun kommt es darauf an, mit welchem Wert deine Funktion z.B. dieses SecondsBetween aufrufen würde.
Jenachdem kann der Test deiner Funktion erfolgreich sein, falls du zufällig einen der funktionierenden Fälle erwischts.
Forum: Die Delphi-IDE
by himitsu,
21. Aug 2014
siehe der andere Thread -> http://www.delphipraxis.net/151504-secondsbetween-fehlerhaft.html
Es kommt jetzt darauf an, mit welchem der beiden Werte du zufällig deinen Unittest aufbaust.
Forum: Die Delphi-IDE
by himitsu,
21. Aug 2014
Nochmal nachgedacht:
Aufgrund der bekannten Rundungen, an jede Zeit 'ne 1/4 Millisekunde dranhängen und an die Endezeit nochmal 'ne 1/4 Sekunde ... dann sollten die Rundungsfehler weg sein.
Oder selber rechnen Round(Abs(Zeit1 - Zeit2) * SecsPerDay).
Forum: Die Delphi-IDE
by himitsu,
21. Aug 2014
Alle Between-Time-Funktionen arbeiten mit Millisekunden.
Also erstmal auf Millisekunden umgerechnet, dann die Differenz gebildet und zum Schluß abgerundet (Integerdivision durch die entsprechende Zeiteinheit, hier MSecPerSec).
Es wird also 3 Mal (ab)gerundet.
Die Betweenfunktionen geben halt jede "abgeschlossene" Zeiteinheit raus und nicht die gerundeten.
In diesem Fall lieg die...
Forum: Die Delphi-IDE
by himitsu,
21. Aug 2014
Wenn Da SecondsBetween abrundet, dann reicht schon ein Rundungsfehler von 'ner Millisekunde, in die ungünstigste Richtung.
Forum: Die Delphi-IDE
by himitsu,
21. Aug 2014
Wieso ist es denn wichtig wann das passiert ist?
Jetzt geht es richtig und früher war es falsch.
Im Grunde brauchst du eh nur die Versionen selber prüfen, welche ihr einsetzt und dann interessiert nur "hier geht es, aber da nicht".
Sicher das sich SecondsBetween geändert hat und nicht StrToTime?
Eventuell ist die CPU auch auf einen anderen Rundungsmodus eingestellt, z.B. durch...