안녕하세요, 오늘은 시간을 얻어오는 함수에 대해서 알아보도록 하겠습니다.
SYSTEMTIME을 사용하여서 현재 시간을 알아와보도록 하겠습니다.
프로젝트를 하나 생성해 줍니다. 그리고 시간 표시를 위해 Static Control과 버튼을 만들어 줍니다.

그리고 “GetSystemTime” 버튼을 더블클릭 하셔서 아래와 같이 코딩합니다.
void CMFCApplication1Dlg::OnBnClickedButton1()
{
SYSTEMTIME tmSystem;
::GetSystemTime( &tmSystem );
CString sTime;
sTime.Format( _T("%d년 %d월 %d일 %d시 %d분 %d초"),
tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond );
m_stTime.SetWindowText( sTime );
}
위 내용대로 코딩 한 뒤 실행하면 아래와 같이 표시됩니다.

GetSystemTime 함수는 UTC 기준으로 시간을 가져오기 때문에 정확하지 않습니다.
그럴 경우 GetLocalTime함수를 사용하여 시간을 읽어오면 됩니다. 아래와 같이 버튼 하나 추가한 뒤 코딩을 해줍니다.

void CMFCApplication1Dlg::OnBnClickedButton2()
{
SYSTEMTIME tmSystem;
::GetLocalTime( &tmSystem ); // PC에 설정된 지역의 시간을 읽어옴
CString sTime;
sTime.Format( _T( "%d년 %d월 %d일 %d시 %d분 %d초" ),
tmSystem.wYear, tmSystem.wMonth, tmSystem.wDay, tmSystem.wHour, tmSystem.wMinute, tmSystem.wSecond );
m_stTime.SetWindowText( sTime );
}
위 GetLocalTime 버튼을 실행하면 아래와 같이 표시됩니다.

시간을 가져오는 함수는 생각보다 쉽습니다.
하지만 시간과 시간의 차이나 계산을 하는 것은 SYSTEMTIME보단 CTime과 CTimeSpan을 많이 이용합니다.
다음 글에서는 해당 클래스를 이용하여 시간을 얻거나 계산을 해보겠습니다.