다음을 통해 공유


year_month_day 클래스

월, 연도 및 일을 나타냅니다.

구문

class year_month_day; // C++20

멤버

속성 설명
생성자 a 생성 year_month_day
day 일을 반환합니다.
month 월을 반환합니다.
ok 값과 month 값이 year 유효한 범위에 있는지 확인합니다.
operator+= 지정된 월 또는 연도 수를 추가합니다.
operator-= 지정한 월 또는 연도 수를 뺍니다.
operator local_days Epoch에서 system_clockyear_month_day 날짜까지의 일 수를 다음과 같이 local_days가져옵니다.
operator sys_days Epoch에서 system_clockyear_month_day 날짜까지의 일 수를 다음과 같이 sys_days가져옵니다.
year 연도를 반환합니다.

비멤버

속성 설명
from_stream 지정된 형식을 year_month_day 사용하여 스트림에서 구문 분석
operator+ 월 또는 연도를 추가합니다.
operator- 월 또는 연도를 뺍니다.
operator== year_month_day 값이 같은지 여부를 확인합니다.
operator<=> year_month_day 값을 비교합니다. >, >=, <=, <, != 연산자는 컴파일러에 의해 합성됩니다.
operator<< 스트림에 출력 year_month_day 합니다.

요구 사항

헤더: <chrono> (C++20 이후)

네임스페이스: std::chrono

컴파일러 옵션: /std:c++latest

생성자

를 생성합니다 year_month_day.

1) year_month_day() = default;
2) constexpr year_month_day(const year& y, const month& m, day& d) noexcept;
3) constexpr year_month_day(const year_month_day_last& ymdl) noexcept;
4) constexpr year_month_day(const sys_days& dp) noexcept;
5) constexpr explicit year_month_day(const local_days& dp) noexcept;

매개 변수

d 값입니다 day .

dp A sys_days 또는 local_days 값입니다.

m 값입니다 month .

y
year 값입니다.

ymdl 값입니다 year_month_day_last .

설명

1) 기본 생성자는 월 또는 일을 초기화하지 않습니다.
2) 지정된 연도, 월 및 일을 사용하여 a year_month_day 를 생성합니다.
3) year_month_day 지정된 연도, 월 및 일을 사용하여 ymdl
4) 와 같은 날짜를 dp사용하여 생성합니다year_month_day.
5) 동일한 날짜를 dp 사용하여 생성 year_month_day 하지만 year_month_day(sys_days(dp.time_since_epoch())).

날짜를 지정하는 데 사용되는 C++20 구문에 대한 자세한 내용은 operator/

예: year_month_day 만들기

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day ymd{ April / 4 / 1975 };
    std::cout << ymd;
    return 0;
}
1975-04-04

day

하루를 가져옵니다.

constexpr day day() const noexcept;

반환 값

day 값입니다.

month

월을 가져옵니다.

constexpr month month() const noexcept;

반환 값

month 값입니다.

operator local_days

Epoch(1/1/1/1970)에서 system_clock 다음 year_month_day 으로 일 수를 가져옵니다. local_days

constexpr explicit operator local_days() const noexcept;

반환 값

이면 ok()일 수를 로 반환합니다. local_days{sys_days{*this}.time_since_epoch()}

operator sys_days

Epoch(1/1/1/1970)에서 system_clockyear_month_day sys_days날짜까지의 일 수를 가져옵니다.

constexpr operator sys_days() const noexcept;

반환 값

sys_days 이면 ok()epoch(1970년 1월 1일)부터 sys_daysyear_month_day날짜까지의 일 수를 반환합니다. 이 값의 날짜 year_month_day 가 epoch 이전인 경우 값은 음수 sys_days 입니다.

year_month_day 값의 연도와 월이 ok()면 .를 반환합니다 sys_days{year/month/1d} + (day-1d). 그렇지 않으면 반환된 값이 지정되지 않습니다.

[, days{11248737}] 범위days{-12687428}의 A sys_days 는 a year_month_day 와 뒤로 변환할 수 있으며 동일한 값을 가질 수 있습니다.

year

연도를 가져옵니다.

constexpr year year() const noexcept;

반환 값

year.

ok

이 값에 저장된 연도 및 월 값이 year_month_day 모두 유효한 범위에 있는지 확인합니다. 날짜가 [1d, (y/m/last).day()] 범위에 있고 윤년 및 매월 다른 일 수를 차지하도록 합니다.

constexpr bool ok() const noexcept;

반환 값

trueyear_month_day 연도, 월 및 일 값이 유효한 범위에 있는 경우 그렇지 않으면 false입니다.

operator+=

year_month_day월 또는 연도를 추가합니다.

1) constexpr year_month_day& operator+=(const months& dm) noexcept;
2) constexpr year_month_day& operator+=(const years& dy) noexcept;

매개 변수

dm
추가할 월 수입니다.

dy
추가할 연도 수입니다.

반환 값

*this- 추가 결과를 반영합니다.

예: operator+=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day ymd{June / 1d / 2021y};

    std::cout << ymd << '\n';

    ymd += months{2};
    ymd += years{1};

    std::cout << ymd;
    
    return 0;
}
2021-06-01
2022-08-01

operator-=

에서 year_month_day월 또는 연도를 뺍니다.

1) constexpr year_month_day& operator-=(const months& dm) noexcept;
2) constexpr year_month_day& operator-=(const years& dy) noexcept;

매개 변수

dm
뺄 월 수입니다.

dy
뺄 연도 수입니다.

반환 값

*this- 빼기의 결과를 반영합니다.

예: operator-=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_day ymd{June / 1d / 2021y};

    std::cout << ymd << '\n';

    ymd -= months{2};
    ymd -= years{1};

    std::cout << ymd;
    
    return 0;
}
2021-06-01
2020-04-01

참고 항목

<chrono>
year
year_month
year_month_day_last
year_month_weekday
year_month_weekday_last
operator/
헤더 파일 참조