Zeitabstand ermitteln
-
Welche Möglichkeiten gibt es in C++, um einen Zeitabstand zu ermitteln ?
CTime und CTimeSpan bieten mir nicht ausreichend Möglichkeiten (maximal Sekunden möglich), da es sich bei meinem Programm um die Ermittlung minimaler Zeitabstände handelt, bei denen der Millisekundenbereich auch bedeutsam ist.Bsp.:
Startzeit: 17:15:23,58
Endzeit: 17:15:28,16
Zeitabstand: 4,58 sWer kann helfen ?
-
Wie wäre es denn wenn du einen Timer einrichtest der dann startest wenn du etwas stoppen willst. Dann inkrementierst du eine Variable in jedem Timerereignis und wenn du dann den Timer am Ende stoppst kannst du ja dann die Variable in min uns sec umrechnen.
Ist vielleicht ein wenig kompliziert aber das müsste eigentlich klappen.
Mr.Perfect
-
Ich würde GetTickCount bevorzugen... liefert wenn ich mich nicht irre, die Zeit seit dem Windowsstart (oder dem Computerstart?...) in Millisekunden. Für Zeitspannen berechnest du dann halt die Differenz zweier GetTickCount's
-
Hallo,
eigentlich musst Du doch irgendwo und irgendwann die Zeit ja holen. Wenn man die holt sollte die doch als Zahlenwert vorhanden sein, da man ja mit diesem Wert und einem Format erst auf die Zeit xx:xx:xx,xx kommt. Daher würde ich diesen Zahlenwert speichern.
Gruß
Ocrana
-
Hat DerGhost schon gesagt:
GetTickCount
-
Hab dazu mal die MSDN- Library durchgelesen und festgestellt, daß der Befehl so seine Tücken hat.
z.B.The GetTickCount function retrieves the number of milliseconds that have elapsed since the system was started. It is limited to the resolution of the system timer. If you need a higher resolution timer, use a multimedia timer or a high-resolution timer.[...]
The elapsed time is stored as a DWORD value. Therefore, the time will wrap around to zero if the system is run continuously for 49.7 days.Ich hab aber auch noch was anderes gefunden.
#include "time.h" #include "sys/types.h" #include "sys/timeb.h" double CView::timestamp() { double retvalue; CString sZeit; time_t ltime; struct _timeb tstruct; time(<ime); _ftime(&tstruct); Zeit.Format("%ld,%u", ltime, tstruct.millitm); //ss,milli seit 01.01.1970 MessageBox(sZeit); retvalue = //??? return retvalue; }
Mein Problem ist bloß, die beiden Ausdrücke zu verknüpfen und dann als Kommawert statt String zurückzugeben.
In Basic gibt's beispielsweise 'ne Funktion int(), um Strings in Integerzahlen umzuwandeln.
Gibt's da auch was für C++ ?
-
Statt time(<ime);
time(<ime);
-
Mist, Text wird irgendwie nicht richtig gefiltert.
Das Größer-als-Zeichen soll eigentlich ein kaufmännisches und dann ltime.
Sorry !