Autor Beitrag
Erni35
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 04.04.05 14:01 
Hallo Leute,

ich habe ein kleines großes Problem mit Delphi.
Ich will die Differenz zwischen zwei Zeitpunkten berechnen mit Millisekunden-Genauigkeit. Leider funktioniert dies nicht mit den Delphi-Bordmitteln. Die Rundungsfehler beiTDatetime sind so groß, dass die Sekunden zwar noch stimmen, aber die Millisekunden fast Zufallszahlen sind. Wie kann ich den Abstand zwischen den beiden Zeitpunkten berechnen, unter Beibehaltung der Genauigkeit auch im Millisekundenbereich?

Selbst ein händisches Ausrechnen des Bruchteils des Tages funktioniert mit extended-Variablen nicht genau genug, hier stören auch die Rundungsfehler.

Danke,
Dietmar.

_________________
Sind wir allein im Weltall, ist das riesige Platzverschwendung
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Mo 04.04.05 14:19 
user profile iconErni35 hat folgendes geschrieben:
Hallo Leute,

ich habe ein kleines großes Problem mit Delphi.
Ich will die Differenz zwischen zwei Zeitpunkten berechnen mit Millisekunden-Genauigkeit. Leider funktioniert dies nicht mit den Delphi-Bordmitteln. Die Rundungsfehler beiTDatetime sind so groß, dass die Sekunden zwar noch stimmen, aber die Millisekunden fast Zufallszahlen sind. Wie kann ich den Abstand zwischen den beiden Zeitpunkten berechnen, unter Beibehaltung der Genauigkeit auch im Millisekundenbereich?

Selbst ein händisches Ausrechnen des Bruchteils des Tages funktioniert mit extended-Variablen nicht genau genug, hier stören auch die Rundungsfehler.

Danke,
Dietmar.


Das liegt nicht an TDateTime, sondern an GetTickCount. Nimm Suche in: Delphi-Forum, Delphi-Library QUERYPERFORMANCECOUNTER

AXMD
Erni35 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 04.04.05 14:37 
Ich will nicht zwei Ereignisse messen, sondern die Differenz zwischen zwei vorliegenden Zeiten ermitteln. Ich habe zwei Variablen aus einer Textdatei eingelesen und muss die Differenz der Zeiten ermitteln.

Danke.

_________________
Sind wir allein im Weltall, ist das riesige Platzverschwendung
Golden-Melody
Hält's aus hier
Beiträge: 2

Win XP

BeitragVerfasst: So 10.04.05 02:51 
user profile iconErni35 hat folgendes geschrieben:

Selbst ein händisches Ausrechnen des Bruchteils des Tages funktioniert mit extended-Variablen nicht genau genug, hier stören auch die Rundungsfehler.


Meine Empfehlung wäre statt der extended Variablen den Datentyp int64 zuverwenden.
Also erst die vorliegenden Zeitdaten in Millisekunden umrechnen und dann subtrahieren.

Zur Erinnerung:
1 h = 3.600.000 ms
1 t = 86.400.000 ms

soweit reicht sogar noch 32 Bit Integer.

Sollten die zu verarbeitenden Daten über einen Jahreswechsel gehen, müssen die Zeitanpassungen der zuständigen Einrichtungen berücksichtigt werden.
Schorschi-1
Hält's aus hier
Beiträge: 1

Win XP pro
Delphi 7 Enterprise
BeitragVerfasst: Mi 13.04.05 21:25 
Ich denke es geht doch mit Delpi-Bordmitteln....

kennst du schon diese funktion????

ausblenden Delphi-Quelltext
1:
function MilliSecondsBetween(const ANow, AThen: TDateTime): Int64;