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 Lösung darin, daß an das Endedatum z.B. eine halbe Sekunde angehängt wird,
oder Emba hätte, wie z.B. bei den CompareValue-Funktionen, ein Epsilon zur Verfügung gestellt, bzw. würde runden statt abzurunden.
Um zu wissen, wann der Qualitätscheck bei Emba/nprise/Codegear/Borland ausgesetzt hat.
Wieso ausgesetzt?
Jetzt rechnet die Funktion doch richtig und früher war sie "kaputt".