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
weekday
요dp
일을 사용하여 생성합니다.
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};