[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++을 사용하여 윈도우 시스템에서 시간과 날짜를 관리하는 프로그램을 작성할 수 있습니다. 이러한 기능을 활용하여 다양한 시간과 날짜 기반의 응용프로그램을 만들 수 있습니다.
참고 자료:
- Microsoft Docs: SYSTEMTIME structure
- Microsoft Docs: GetLocalTime function
- Microsoft Docs: SetLocalTime function