글
시간 계산 어떻게 하시나요?
여러 가지 방법이 있겠지만 SYSTEMTIME을 사용하여 계산하는 경우라면 COleDateTime과 COleDateTimeSpan을 사용하여 계산하면 쉽게 할 수 있습니다.
COleDateTime과 COleDateTimeSpan은 ATL에 있는 라이브러리입니다.
COleDateTime과 COleDateTimeSpan을 사용하기 위한 조건
필요한 파일 : ATLComTime.h
예제
아래 예제는 지정된 시간에서 ‘분’을 더한 시간을 계산합니다.
void UpdateTime( SYSTEMTIME& stPatchTime, INT32 wMinute )
{
COleDateTime PatchTime( stPatchTime.wYear, stPatchTime.wMonth, stPatchTime.wDay, stPatchTime.wHour, stPatchTime.wMinute, stPatchTime.wSecond );
COleDateTimeSpan SpendTime;
SpendTime.SetDateTimeSpan( 0, 0, wMinute, 0 );
PatchTime += SpendTime;
stPatchTime.wYear = PatchTime.GetYear();
stPatchTime.wMonth = PatchTime.GetMonth();
stPatchTime.wDay = PatchTime.GetDay();
stPatchTime.wHour = PatchTime.GetHour();
stPatchTime.wMinute = PatchTime.GetMinute();
}
COleDateTime은 생성자에서 SYSTEMTIME을 인자로 사용할 수 있습니다. 그러나 인자로 사용할 SYSTEMTIME의 값이 올바른 값인 경우만 사용할 수 있습니다. 예를 들어 아래와 같은 것을 인자로 넘기면 디버그 모드에서는 경고가 발생합니다.
SYSTEMTIME stTime;
stTime.wYear = 2010;
stTime.wMonth = 10;
stTime.wDay = 11;
COleDateTime CurTime( stTime );
// 이후 이것을 계산에 사용할 때 에러발생
댓글