반응형
- 기타사항 : EVC4.0 / CE5.0 에서 테스트완료
1. 시간의 변환
일단, 시간의 표현중에 가장 쉽게 표현되는형태인 SYSTEMTIME
형태로 값을 얻어온 후
다시 Double 형태값으로 변환한것을 빼기해서 다시 SYSTEMTIME
형태로 변환하면 경과시간을 알수있을듯...
SYSTEMTIME st;
WCHAR szCurTime[128]={0,};
DWORD dwWriten;
GetLocalTime(&st);
DEBUGMSG(1,(TEXT("orignal!! : st.wMinute[%d] st.wSecond[%d]\r\n"),st.wMinute,st.wSecond));
double dbTime;
SystemTimeToVariantTime(&st,&dbTime);
DEBUGMSG(1,(TEXT("convert to double Val is [%d]\r\n"),dbTime));
VariantTimeToSystemTime(dbTime, &st);
RETAILMSG(1,(TEXT("convert to Time is : st.wMinute[%d] st.wSecond[%d]\r\n"),st.wMinute,st.wSecond));
SystemTimeToVariantTime()
함수를 이용하면.. 시간을 double 변수형태로 변환해준다. 반대로..VariantTimeToSystemTime()
함수를 이용하면... double 값을 시간형태로 변환해준다.
2. 시간의 계산
- 방법1) 위의 함수를 이용하여 double 형태로 변환후 덧셈 뺄셈을 하면 시간 계산이 되더라!! ㅎㅎ;;
- 방법2) Tick 수로 계산하는 방법이다.
GetTickCount();
(dwCurTick - dwPastTic)/1000
위와 같이 이용하는것이다. 하나는 static 을 이용하여 계속 저장시키고.. 나중에 현재 틱수를 빼서 계산한다. 이때 밀리단위니 1000을 나누면 초가 떨어진다!
반응형