[c++] C++으로 윈도우 시간과 날짜 관리 프로그래밍

C++을 사용하여 윈도우 시스템에서 시간과 날짜를 관리하는 프로그램을 작성하는 방법에 대해 알아보겠습니다. 이 프로그램은 현재 시간과 날짜를 가져오고, 시간 간격을 계산하고, 사용자가 지정한 시간과 날짜로 설정하는 기능을 포함할 것입니다.

현재 시간과 날짜 가져오기

윈도우에서 현재 시간과 날짜를 가져오기 위해서는 GetLocalTime 함수를 사용합니다. 이 함수는 시스템 시간을 로컬 시간으로 반환합니다.

다음은 GetLocalTime 함수를 사용하여 현재 시간과 날짜를 가져오고 출력하는 간단한 예제 코드입니다.

#include <iostream>
#include <windows.h>

int main() {
    SYSTEMTIME st;
    GetLocalTime(&st);
    std::cout << "현재 날짜: " << st.wYear << "년 " << st.wMonth << "월 " << st.wDay << "일" << std::endl;
    std::cout << "현재 시간: " << st.wHour << "시 " << st.wMinute << "분 " << st.wSecond << "초" << std::endl;
    return 0;
}

이 코드는 SYSTEMTIME 구조체를 사용하여 GetLocalTime 함수로 현재 시간과 날짜를 가져와 출력합니다.

시간 간격 계산하기

두 시간 사이의 간격을 계산하기 위해서는 SystemTimeToFileTime 함수와 FileTimeToSystemTime 함수를 사용할 수 있습니다. 이를 활용하여 시간 간격을 계산하는 예제 코드는 다음과 같습니다.

#include <iostream>
#include <windows.h>

int main() {
    FILETIME ft1, ft2;
    SYSTEMTIME st1, st2;
    ULARGE_INTEGER uli;

    SystemTimeToFileTime(&st1, &ft1);
    SystemTimeToFileTime(&st2, &ft2);

    uli.LowPart = ft2.dwLowDateTime - ft1.dwLowDateTime;
    uli.HighPart = ft2.dwHighDateTime - ft1.dwHighDateTime;

    std::cout << "두 시간의 간격: " << uli.QuadPart << " 100ns 틱" << std::endl;
    return 0;
}

시간과 날짜 설정하기

특정 시간과 날짜를 설정하려면 SetLocalTime 함수를 사용합니다. 이 함수는 시스템 시간을 지정한 시간으로 설정합니다. 다음은 SetLocalTime 함수를 사용하여 2022년 1월 1일 12시 0분 0초로 시스템 시간을 설정하는 예제 코드입니다.

#include <iostream>
#include <windows.h>

int main() {
    SYSTEMTIME st = { 2022, 1, 0, 1, 12, 0, 0, 0 };
    SetLocalTime(&st);
    std::cout << "시스템 시간이 설정되었습니다." << std::endl;
    return 0;
}

이러한 방법으로 C++을 사용하여 윈도우 시스템에서 시간과 날짜를 관리하는 프로그램을 작성할 수 있습니다. 이러한 기능을 활용하여 다양한 시간과 날짜 기반의 응용프로그램을 만들 수 있습니다.

참고 자료: