미래나 과거의 날짜 계산하기

C++:
미래나 과거의 날짜 계산하기

어떻게? (How to:)

#include <iostream>
#include <chrono>
#include <date/date.h>  // 필요한 경우 https://github.com/HowardHinnant/date에서 date 라이브러리 설치

using namespace std;
using namespace std::chrono;
using namespace date;

int main() {
    // 오늘 날짜를 구함
    auto today = floor<days>(system_clock::now());
    year_month_day ymd = year_month_day{today};
    
    // 미래 날짜 예제: 오늘부터 100일 후
    year_month_day ymd_future = ymd + days{100};
    cout << "100일 후 날짜: " << ymd_future << "\n";
    
    // 과거 날짜 예제: 오늘부터 100일 전
    year_month_day ymd_past = ymd - days{100};
    cout << "100일 전 날짜: " << ymd_past << "\n";
    
    return 0;
}

복잡한 설치 없이 실행하고 싶다면, <chrono> 라이브러리만 사용해도 대부분의 일반적인 날짜 계산이 가능합니다.

깊게 들어가기 (Deep Dive)

날짜 계산은 시간이 지남에 따라 복잡해졌습니다. 과거에는 율리우스력을 사용하다가 그레고리력으로 전환되었습니다. C++20 이전에는 <ctime> 라이브러리를 사용하였지만 유연하지 못했습니다. C++20부터는 <chrono> 라이브러리가 강화되었고, Howard Hinnant가 만든 date 라이브러리를 통해 더 다양하고 정교한 날짜 처리가 가능해졌습니다.

참고자료 (See Also)