PDA

Tam Sürümünü Görmek İçin : time c++


hgedek
15/04/2008, 01:22
C++ da time.h kullanılarak saniye mertebesinde alınan ölçümler nasıl milisaniye gibi daha küçük bazlı yapılabilir?Timeval yada timespec ifadelerinden bahsediliyor ama yeterli bilgi bulamadım.


hgedek
15/04/2008, 03:42
Neyse bazı cevaplar buldum.Aşağıda paylaşıyorum.

#include <ctime>
#include <iostream>
#include <windows.h>

using namespace std;

int main()
{

SYSTEMTIME time1,time2;
FILETIME f1,f2,f3;
ULARGE_INTEGER i1,i2,i3;

GetSystemTime(&time1);
::Sleep(100); //100 milisaniye uyusa.
GetSystemTime(&time2);

SystemTimeToFileTime(&time1,&f1);//filetime lara çevirelim.böylece değerlere

SystemTimeToFileTime(&time2,&f2);//ulaşabilelim.

double x=(f2.dwLowDateTime-f1.dwLowDateTime)/10000; //10000 ile milisaniye al.

i1.LowPart=f1.dwLowDateTime;
i1.HighPart=f1.dwHighDateTime;
i2.LowPart=f2.dwLowDateTime;
i2.HighPart=f2.dwHighDateTime;
i3.LowPart=i2.LowPart-i1.LowPart;
i3.HighPart=i2.HighPart-i1.HighPart;

f3.dwHighDateTime=i3.HighPart;
f3.dwLowDateTime=i3.LowPart;

return 0;


}