소스 코드
DateTime 객체 생성
DateTime 클래스 생성자 목록
DateTime();
DateTime(time_t unixTimestamp);
DateTime(int year, int month, int day, int hour, int minute, int second);
DateTime(const std::string& fmt);
DateTime()
Gamnet::Time::DateTime date_time;
std::cout << "Default:" << date_time.ToString() << std::endl;
// OUTPUT :
// default date time:1400-01-01 00:00:00
기본 DateTime 클래스는 boost::posix_time::ptime의 기본값인 '1400-01-01 00:00:00'으로 설정 된다.
DateTime(time_t unixTimestamp)
Gamnet::Time::DateTime date_time_1(time(nullptr));
std::cout << "Current UTC DateTime from time() : " << date_time_1.ToString() << std::endl;
Gamnet::Time::DateTime date_time_2 = Gamnet::Time::UTC::Now();
std::cout << "Current UTC DateTime from Now() : " << date_time_2.ToString() << std::endl;
Gamnet::Time::DateTime date_time_3 = Gamnet::Time::Local::Now();
std::cout << "Current Local DateTime from Now() : " << date_time_3.ToString() << std::endl;
// OUTPUT :
// Current UTC DateTime from time() : 2022-05-29 14:22:13
// Current UTC DateTime from Now() : 2022-05-29 14:22:13
// Current Local DateTime from Now() : 2022-05-29 23:22:13
생성자의 인자로 타임스템프를 넘겨주어 초기화가 가능하다.
- Gamnet::Time::UTC::Now() : UTC 기준 현재 시각을 DateTime 클래스 인턴스로 리턴한다.
- Gamnet::Time::Local::Now() : 로컬 기준 현재 시각을 DateTime 클래스 인스턴스로 리턴한다.
DateTime(int year, int month, int day, int hour, int minute, int second)
Gamnet::Time::DateTime date_time(2019, 10, 8, 23, 4, 17);
std::cout << "DateTime from argument:" << date_time.ToString() << std::endl;
// OUTPUT :
// DateTime from argument:2019-10-08 23:04:17
DateTime(const std::string& fmt)
Gamnet::Time::DateTime date_time("2022-01-01 00:00:01");
std::cout << "DateTime from string:" << date_time.ToString() << std::endl;
// OUTPUT :
// DateTime from string:2022-01-01 00:00:01
아래 포멧의 문자열 날짜를 인자로 입력 받아 DateTime 객체를 초기화 한다.
- 4자리 연도
- 2자리 숫자 월
- 2자리 숫자 일
- 24시간 숫자 시간
- 00 ~ 59 분
- 00 ~ 59 초
DateTime 연산
날짜, 시간 증가/감소
Gamnet::Time::DateTime now("2022-01-01 00:00:00");
std::cout << "now : " << now.ToString() << std::endl;
// OUTPUT -> now : 2022-01-01 00:00:00
// 년
now += Gamnet::Time::DateTime::Years(1);
std::cout << now.ToString() << std::endl;
// OUTPUT -> after add 1 Year : 2023-01-01 00:00:00
now -= Gamnet::Time::DateTime::Years(2);
std::cout << "after subtract 2 Year : " << now.ToString() << std::endl;
// OUTPUT -> after subtract 2 Year : 2021-01-01 00:00:00
// 월
now += Gamnet::Time::DateTime::Months(1);
std::cout << "after add 1 Month : " << now.ToString() << std::endl;
// OUTPUT -> after add 1 Month : 2021-02-01 00:00:00
now -= Gamnet::Time::DateTime::Months(4);
std::cout << "after subtract 4 Month : " << now.ToString() << std::endl;
// OUTPUT -> after subtract 4 Month : 2020-10-01 00:00:00
// 일
now += Gamnet::Time::DateTime::Days(30);
std::cout << "after add 30 Days : " << now.ToString() << std::endl;
// OUTPUT -> after add 30 Days : 2020-10-31 00:00:00
now -= Gamnet::Time::DateTime::Days(15);
std::cout << "after subtract 15 Days : " << now.ToString() << std::endl;
// OUTPUT -> after subtract 15 Days : 2020-10-16 00:00:00
// 시
now += Gamnet::Time::DateTime::Hours(23);
std::cout << "after add 23 Hours : " << now.ToString() << std::endl;
// OUTPUT -> after add 23 Hours : 2020-10-16 23:00:00
now -= Gamnet::Time::DateTime::Hours(48);
std::cout << "after subtract 48 Hours : " << now.ToString() << std::endl;
// OUTPUT -> after subtract 48 Hours : 2020-10-14 23:00:00
// 분
now += Gamnet::Time::DateTime::Minutes(59);
std::cout << "after add 59 Minutes : " << now.ToString() << std::endl;
// OUTPUT -> after add 59 Minutes : 2020-10-14 23:59:00
now -= Gamnet::Time::DateTime::Minutes(10);
std::cout << "after subtract 10 Minutes : " << now.ToString() << std::endl;
// OUTPUT -> after subtract 10 Minutes : 2020-10-14 23:49:00
// 초
now += Gamnet::Time::DateTime::Seconds(61);
std::cout << "after add 61 Seconds : " << now.ToString() << std::endl;
// OUTPUT -> after add 61 Seconds : 2020-10-14 23:50:01
now -= Gamnet::Time::DateTime::Seconds(5);
std::cout << "after subtract 5 Seconds : " << now.ToString() << std::endl;
// OUTPUT -> after subtract 5 Seconds : 2020-10-14 23:49:56
날짜 비교('==', '!=', '>', '<', '>=', '<=')
Gamnet::Time::DateTime date1("2021-01-01 00:00:00");
Gamnet::Time::DateTime date2("2022-01-01 00:00:00");
std::cout << std::boolalpha << (date1 > date2) << std::endl;
DateTime 함수
- time_t UnixTimestamp(const DateTime& datetime)
DateTime을 유닉스 타임스템프 형식으로 변경 - DateTime FromUnixtime(time_t timestamp)
유닉스 타임스템프를 DateTime 형식으로 변경 - int DateDiff(const DateTime& lhs, const DateTime& rhs)
두 DateTime 간 일 단위 차이를 리턴한다. - int TimestampDiff(const DateTime& lhs, const DateTime& rhs)
두 DateTime 간 초 단위 차이를 리턴한다.