다음을 통해 공유


weekday 클래스

그레고리오력의 요일을 나타냅니다. 예를 들어 화요일입니다.

구문

class weekday; // C++20

설명

A weekday 는 [0, 255] 값을 보유할 수 있지만 일반적으로 요일을 나타내는 값 [0, 6]을 보유합니다. 클래스와 함께 사용할 수 있는 상수는 아래의 Weekday 상수를 weekday 참조하세요.

멤버

속성 설명
생성자 를 생성합니다 weekday.
c_encoding 값을 가져옵니다 weekday .
iso_encoding ISO 8601 weekday 값을 가져옵니다.
ok 값이 weekday 유효한지 확인합니다.
operator++ 를 증분합니다 weekday.
operator+= 지정된 평일 수를 이 weekday요일에 추가합니다.
operator-- 를 줄입니다 weekday.
operator-= weekday요일에서 지정된 평일 수를 뺍니다.
operator[] weekday_indexed 또는 weekday_last weekday만듭니다.

비멤버

속성 설명
from_stream 지정된 형식을 weekday 사용하여 지정된 스트림에서 구문 분석합니다.
operator+ 지정된 평일 수를 이 weekday요일에 추가합니다.
operator- weekday요일에서 지정된 평일 수를 빼거나 두 weekday 개체 간의 차이를 찾습니다.
operator== weekday 개체가 같은지 여부를 확인합니다.
operator<< 스트림에 출력 weekday 합니다.

요구 사항

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

네임스페이스: std::chrono

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

생성자

weekday를 생성합니다.

1) weekday() = default; // C++20
2) explicit constexpr weekday(unsigned wd) noexcept; // C++20
3) constexpr weekday(const sys_days& dp) noexcept; // C++20
4) explicit constexpr weekday(const local_days& dp) noexcept; // C++20

매개 변수

dp
weekdaydp일을 사용하여 생성합니다.

wd
with weekday 값을 생성합니다 wd.

설명

1) 기본 생성자는 평일 값을 초기화하지 않습니다.
2) 지정된 값을 사용하여 생성 weekday 합니다.
7 weekday 이면 wd 값이 0으로 생성됩니다.
255를 넘는 값으로 초기화하지 마세요. 그렇지 않으면 지정 weekday 되지 않은 값이 생성됩니다.
3) 값dp에 해당하는 std::chrono::sys_days 요일을 계산하고 해당 요일을 weekday 사용하여 생성합니다.
4) 값dp에 해당하는 요일을 std::chrono::local_days 계산하고 해당 요일을 weekday 사용하여 생성합니다. using을 만든 weekday weekday(std::chrono::sys_days(dp.time_since_epoch()))것처럼 동작합니다.

예: weekday 만들기

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

using namespace std::chrono;

int main()
{
    weekday wd{ Wednesday };
    weekday wd2{ 3 };
    std::cout << wd << '\n' << wd2;
    
    return 0;
}
Wednesday
Wednesday

c_encoding

constexpr unsigned c_encoding() const noexcept;

반환 값

평일 값입니다.

iso_encoding

평일 값이지만 일요일(0)은 ISO 8601당 7로 해석됩니다.

constexpr unsigned iso_encoding() const noexcept;

반환 값

평일 값입니다.

ok

weekday에 저장된 값이 유효한 범위에 있는지 확인합니다.

constexpr bool is_leap() const noexcept;

반환 값

true 평일 값이 [0, 6] 범위에 있으면 입니다. 그렇지 않으면 false입니다.

operator++

평일 값에 1을 추가합니다.

1) constexpr std::chrono::weekday& operator++() noexcept;
2) constexpr std::chrono::weekday operator++(int) noexcept;

반환 값

1) 증분 후 평일에 대한 참조 *this 입니다(후위 증가).
2) 증분되기 전weekday복사본입니다(접두사 증가).

예: operator++

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

using namespace std;
using namespace std::chrono;

int main()
{
    std::chrono::weekday wd{Thursday};

    std::cout << wd << " " << ++wd << "\n"; // constexpr weekday& operator++() noexcept
    std::cout << wd << " " << wd++ << "\n"; // constexpr weekday operator++(int) noexcept
    std::cout << wd << "\n";

    return 0;
}
Thu Fri
Fri Fri
Sat

설명

증가된 값은 모듈로 7입니다. 항상 [0, 6] 범위에 있습니다.

operator--

값에서 1을 weekday 뺍니다.

1) constexpr std::chrono::weekday& operator--() noexcept;
2) constexpr std::chrono::weekday operator--(int) noexcept;

반환 값

1) 감소된 후의 참조 *this weekday 입니다(후위 감소).
2) 감소되기 전weekday 복사본입니다(접두사 감소).

예: operator--

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

using namespace std;
using namespace std::chrono;

int main()
{
    weekday y = weekday{Thursday};

    cout << y << " " << --y << "\n"; // constexpr weekday& operator--() noexcept
    cout << y << " " << y-- << "\n"; // constexpr weekday operator--(int) noexcept
    cout << y << "\n";

    return 0;
}
Thu Wed
Wed Wed
Tue

설명

감소된 결과가 0보다 작으면 6으로 설정됩니다.

operator+=

에 일 추가 weekday

constexpr weekday& operator+=(const days& d) noexcept;

매개 변수

*d*
추가할 일 수입니다.

반환 값

*this + d의 값 결과는 [0, 6] 범위의 모듈로 7입니다.

operator-=

에서 일 수 빼기 weekday

constexpr weekday& operator-=(const days& d) noexcept;

매개 변수

*d*
뺄 일 수입니다.

반환 값

*this - d의 값 결과는 [0, 6] 범위의 모듈로 7입니다.

operator[]

weekday_indexed 또는 weekday_last weekday만듭니다.

1) std::chrono::weekday_indexed(*this, index) // C++20
2) std::chrono::weekday_last(*this) // C++20

반환 값

1) std::chrono::weekday_indexed(*this, index)
2) std::chrono::weekday_last(*this)

예: operator[]

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

using namespace std;
using namespace std::chrono;

int main()
{
    constexpr auto firstMondayInJanuary =
        year_month_day{ Monday[2] / January / 2021y };

    std::cout << firstMondayInJanuary << "\n";

    constexpr auto lastMondayInJanuary = 
        year_month_day{ Tuesday[last] / January / 2021y };
    std::cout << lastMondayInJanuary << "\n";
}
2021-01-11
2021-01-26

평일 상수

(C++20) 헤더는 <chrono> 코드의 편의성, 형식 안전성 및 유지 관리를 위해 사용할 weekday 수 있는 다음 상수들을 정의합니다. 이러한 상수는 범위에 있는 경우 std::chrono 범위에 있습니다.

// Calendrical constants
inline constexpr std::chrono::weekday Sunday{0};
inline constexpr std::chrono::weekday Monday{1};
inline constexpr std::chrono::weekday Tuesday{2};
inline constexpr std::chrono::weekday Wednesday{3};
inline constexpr std::chrono::weekday Thursday{4};
inline constexpr std::chrono::weekday Friday{5};
inline constexpr std::chrono::weekday Saturday{6};

참고 항목

weekday_last 클래스
weekday_indexed 클래스
<chrono>
헤더 파일 참조