|
하안인 님이 쓰신 글 :
: TDateTime a1,a2;
: a1 = Now();
: .....
: a2 = Now();
:
: a2와 a1의 시간간격을 보려고 합니다.
: a2와 a1의 시간간격을 초로 보려고 하면 어떻게 해야 하나요.
:
:
TDateTime의 정수부분은 날짜를, 소수부분은 시간입니다.
이 성질을 이용하시면 좀 더 쉽게 TDateTime을 취급할 수 있겠죠?
TDateTime a1,a2;
a1 = Now();
.....
a2 = Now();
// 60 sec * 60 min * 24 hour == 86400 sec
// 그러므로 1 sec = 1 / 86400
double dDT = ((double)a2 - (double)a1) * 86400.0;
msec단위로 바로 얻고자 한다면 다음과 같이 하세요
DWORD dwTick, dwDT;
dwTick = GetTickCount();
....
dwDT = GetTickCount() - dwTick;
// sec로 바꾸고자 한다면
dwDT *= 1000.0; // 1sec = 1000msec
단, 주의하실 점은 GetTickCount는 컴텨가 켜진 후 4294967296msec가 넘어가는(2의32승) 시점(약 49일정도 됩니다. 이게 그 유명한 윈도우 98의 49일버그죠)에서 0으로 바뀐 후 다시 계속 증가하는 성질이 있으므로 이를 고려하여 안전장치를 마련하셔야 합니다.
|