#include <ATLComTime.h>
// 현재 시간
DATE dtDate = COleDateTime::GetCurrentTime();
// 시간 구하기
COleDateTime tNowTime( dtDate );
int nNowYear = tNowTime.GetYear(); // 2021
int nNowMonth = tNowTime.GetMonth(); // 1
int nNowDay = tNowTime.GetDay(); // 22
int nNowHour = tNowTime.GetHour(); // 9
int nNowMinute = tNowTime.GetMinute(); // 0
int nNowSecond = tNowTime.GetSecond(); // 0
int nNowWeek = tNowTime.GetDayOfWeek(); // 6(금) 1 = 일요일 : 1~7
COleDateTime tCustomNow( nNowYear, nNowMonth, nNowDay, 0, 0, 0 );
// DATE 로 셋팅
DATE dtCustomTime = tCustomNow;
// time_t(long) 로 셋팅
time_t tCustomTime = tCustomNow;
// int64 로 셋팅
__time64_t nCustomTime = tCustomNow;
// SYSTEMTIME 로 셋팅
SYSTEMTIME sysCustomTime = tCustomNow;
// FILEMTIME 로 셋팅
FILETIME fileCustomTime = tCustomNow;
////////////////////////////////////////////////////////////////////
COleDateTime tCDTime( COleDateTime::GetCurrentTime() );
// 년월일(YYYYMMDD) 만 추출한것 -> Time 세팅.
// 2020-12-23 10:43:00 -> 20201223
COleDateTime tNowYMD( tCDTime.GetYear(), tCDTime.GetMonth(), tCDTime.GetDay(), 0, 0, 0 );
COleDateTimeSpan tAddTime( 30, 9, 0, 0 ); // 30일 9시간 세팅.
// 시간 임의 추가 계산
// 2020-12-23 00:00:00 + 0000-00-30 09:00:00 -> 2021-01-22 09:00:00 (금:6)
DATE dtNowEndDate = tNowYMD + tAddTime;
// int 년 월 일 시 분 초 추출
COleDateTime tBundle( dtNowEndDate );
int nBundleYear = tBundle.GetYear(); // 2021
int nBundleMonth = tBundle.GetMonth(); // 1
int nBundleDay = tBundle.GetDay(); // 22
int nBundleHour = tBundle.GetHour(); // 9
int nBundleMinute = tBundle.GetMinute(); // 0
int nBundleSecond = tBundle.GetSecond(); // 0
int nBundleWeek = tBundle.GetDayOfWeek(); // 6(금) 1 = 일요일 : 1~7
// COleDateTime Time 값 변환
COleDateTime cdt( nBundleYear, nBundleMonth, nBundleDay, nBundleHour, nBundleMinute, 0 );
DATE dtTime = cdt; // DATE 로 셋팅
time_t tTime = cdt; // time_t(long) 로 셋팅
__time64_t nTime = cdt; // int64 로 셋팅
SYSTEMTIME sysTime = cdt; // SYSTEMTIME 로 셋팅
FILETIME fileTime = cdt; // FILEMTIME 로 셋팅
// 보너스 추가.
// 시간 차이 - 남은 시간 계산
DATE dtNowTime = tNowTime;
DATE dtCustomTime = tCustomNow;
COleDateTimeSpan sp( dtNowTime - dtCustomTime );
int nTotalMinutes = (int)sp.GetTotalMinutes(); // 분
int nTotalSecond = (int)sp.GetTotalSeconds(); // 초
출처 : COleDateTime 클래스 | Microsoft Docs
'[ Programing ] > C++' 카테고리의 다른 글
C++ int YYYMMDD -> DATE로 설정하기. (0) | 2020.12.23 |
---|---|
C++ int YYYMMDDHH -> DATE로 설정하기. (0) | 2020.12.23 |
SRand() 사이즈. 최대 범위. (0) | 2020.10.12 |
C++ Type Traits (0) | 2020.09.09 |
C++ union (0) | 2020.06.05 |