[MFC] CTime 클래스 간단 사용 방법

[MFC] 환경에서 CTime 클래스를 이용하여 현재 요일 및 시간 구하는 방법

 

이번 포스팅에서는 MFC 프로젝트에서 CTime 클래스를 이용하여 시간을 어떻게 얻어오고 또 사용하는 방법에 대하여 알아보도록 하겠습니다.

 

실무에서는 CTime 클래스를 많이 사용하는데 어떠한 경우에 사용하는지 간단히 설명을 드리자면,


예를 들어 장비에서 물류 작업을 진행할 때 여러가지 설비와 관련된 RawData들을 기록하는데 이때 남기는 파일명을 년월일.txt 또는 년월일시분초.csv 이런식으로 남깁니다.

 

또한, 저 같은 경우는 로그파일명을 20180628.log 이런식으로 시간을 이용하여 남기기 때문에 CTime 클래스를 유용하게 사용하고 있는 중입니다.

 

그렇다면 실제 MFC에서 CTime 클래스를 어떻게 선언하고 해당 시간들을 어떻게 표현하는지에 대하여 알아보도록 하겠습니다.


 

우선은 MFC 프로젝트를 대화상자 기반으로 생성하여 주시기 바랍니다.


 

그리고 나서, MainDlg.cpp 안에 OnInitDialog() 함수 안에 아래와 같이 코드를 작성하여 주시기 바랍니다.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

// CMFCApplication1Dlg 메시지 처리기

 

BOOL CMFCApplication1Dlg::OnInitDialog()

{

    CDialogEx::OnInitDialog();

 

    // 시스템 메뉴에 "정보..." 메뉴 항목을 추가합니다.

 

    // IDM_ABOUTBOX 시스템 명령 범위에 있어야 합니다.

    ASSERT((IDM_ABOUTBOX & 0xFFF0== IDM_ABOUTBOX);

    ASSERT(IDM_ABOUTBOX < 0xF000);

 

    CMenu* pSysMenu = GetSystemMenu(FALSE);

    if (pSysMenu != NULL)

    {

        BOOL bNameValid;

        CString strAboutMenu;

        bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);

        ASSERT(bNameValid);

        if (!strAboutMenu.IsEmpty())

        {

            pSysMenu->AppendMenu(MF_SEPARATOR);

            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

        }

    }

 

    //  대화 상자의 아이콘을 설정합니다응용 프로그램의  창이 대화 상자가 아닐 경우에는

    //  프레임워크가  작업을 자동으로 수행합니다.

    SetIcon(m_hIcon, TRUE);            //  아이콘을 설정합니다.

    SetIcon(m_hIcon, FALSE);        // 작은 아이콘을 설정합니다.

 

    // TODO: 여기에 추가 초기화 작업을 추가합니다.

    CTime cTime = CTime::GetCurrentTime(); 

 

 

    CString strDate = "", strTime = ""//반환되는 날짜와 시간을 저장할 CString 변수 선언

    strDate.Format("%04d%02d%02d", cTime.GetYear(), cTime.GetMonth(), cTime.GetDay());

 

    strTime.Format("%02d%02d%02d", cTime.GetHour(), cTime.GetMinute(), cTime.GetSecond());

 

    CString strTest = strDate +"-"+ strTime;

  

    AfxMessageBox(_T(strTest));

 

    return TRUE;  // 포커스를 컨트롤에 설정하지 않으면 TRUE 반환합니다.

}

Colored by Color Scripter

cs

 

위의 코드를 간단히 설명을 드리자면 우선 CTime cTime = CTime::GetCurrentTime();은 현재 시간을 반환 받아 가져오게 됩니다.

 

그리고 CTime 클래스 안에는 다양한 함수들이 있는데 년,,etc..

GetYear(), GetMonth(), GetDay()등을 이용하여 가져올 수 있으며 string.format()을 이용하여 사용자가 원하는 자릿수에 맞게 끔 수정할 수도 있습니다.



  위의 예제에서는 년- 4자리, 나머지는 모두 2자리 표시

 


 

출력 결과 화면

 

지금까지 간단히 CTime 클래스를 사용하는 방법에 대해서 알아보았습니다.


감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY