본문 바로가기

전자 공학/MFC

[MFC 독학하기] 10. CTime, CTimeSpan 클래스

반응형

안녕하세요. 취업한 공대누나입니다.

오늘은 MFC의 CTime 클래스와 CTimeSpan 클래스에 대해 알아보도록 하겠습니다.

CTime 클래스는 절대적인 시간을 처리하고, CTimeSpan 클래스는 시간의 차이값을 처리하는 클래스입니다.

 


1. CTime Class

제일 기본적인 시간 클래스입니다. 

하지만 초기에 구현된 클래스이기 때문에 1970년 이전과 2038년 이후의 시간을 처리하지 못합니다.

그 이전 혹은 이후의 시간범위 계산이 필요하면 CTime 클래스가 아닌 COleDateTime 클래스를 사용해야 합니다.

GetCurrentTime 함수는 현재 시간을 반환 받아 가져오게 합니다.

여기서 time1 = CTime::GetCurrentTime();이렇게 되어 있는데 CTime :: 를 붙이지 않으면 제대로 된 시간을 불러오지 않습니다.

 

CTime 클래스 안에는 다양한 함수들이 있습니다.

GetYear, GetMonth, GetDay, GetHour, GetMinute, GetSecond 함수를 이용하여 현재 시각을 불러올 수 있습니다.

 

CTime :: Format() 함수는 객체에 저장된 시간 정보를 우리가 원하는 형태로 바꿔 문자열 형태로 리턴하는 것입니다.


2. CTimeSpan Class

 

CTimeSpan 클래스는 시간이 아니라 기간을 저장하는 개념이라고 생각하시면 됩니다.

시간을 연산하기 위해 제공되는 클래승비니다.

두 개의 CTime 객체를 -빼기 연선하여 CTimeSpan 객체를 얻을 수 있습니다.

아래 예제를 통해 확인해보도록 하겠습니다.

우선 time1과 time2에 각각 현재 시간을 저장해두었습니다.

중간에 Sleep함수는 밀리초 단위로 시간을 입력받아서 해당 프로그램을 대기시키는 역할을 합니다.

즉 1000을 입력하였으나 1000ms, 즉 1초동안 이 프로그램을 대기시켰습니다.

그래서 지연 시킨 1초만큼 출력이 되는 것을 확인할 수 있습니다.


회사 프로그램 중에 시간 띄우는 게 있었는데 이런 방법으로 하는 거였습니다.

제가 알기 전까지는 이런걸 어떻게 하지 라고 생각이 되었던 것들인데, 지금 보니 크게 어렵지는 않은 것 같네요.

반응형