std::chrono::operator/ (calendar)
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <chrono>
|
||
year_month |
||
constexpr auto operator/( const std::chrono::year& y, const std::chrono::month& m ) noexcept -> std::chrono::year_month; |
(1) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::year& y, int m ) noexcept -> std::chrono::year_month; |
(2) | (начиная с C++20) |
month_day |
||
constexpr auto operator/( const std::chrono::month& m, const std::chrono::day& d ) noexcept -> std::chrono::month_day; |
(3) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::month& m, int d ) noexcept -> std::chrono::month_day; |
(4) | (начиная с C++20) |
constexpr auto operator/( int m, const std::chrono::day& d ) noexcept -> std::chrono::month_day; |
(5) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::day& d, const std::chrono::month& m ) noexcept -> std::chrono::month_day; |
(6) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::day& d, int m ) noexcept -> std::chrono::month_day; |
(7) | (начиная с C++20) |
month_day_last |
||
constexpr auto operator/( const std::chrono::month& m, std::chrono::last_spec ) noexcept -> std::chrono::month_day_last; |
(8) | (начиная с C++20) |
constexpr auto operator/( int m, std::chrono::last_spec ) noexcept -> std::chrono::month_day_last; |
(9) | (начиная с C++20) |
constexpr auto operator/( std::chrono::last_spec, const std::chrono::month& m ) noexcept -> std::chrono::month_day_last; |
(10) | (начиная с C++20) |
constexpr auto operator/( std::chrono::last_spec, int m ) noexcept -> std::chrono::month_day_last; |
(11) | (начиная с C++20) |
month_weekday |
||
constexpr auto operator/( const std::chrono::month& m, const std::chrono::weekday_indexed& wdi ) noexcept -> std::chrono::month_weekday; |
(12) | (начиная с C++20) |
constexpr auto operator/( int m, const std::chrono::weekday_indexed& wdi ) noexcept -> std::chrono::month_weekday; |
(13) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::weekday_indexed& wdi, const std::chrono::month& m ) noexcept -> std::chrono::month_weekday; |
(14) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::weekday_indexed& wdi, int m ) noexcept -> std::chrono::month_weekday; |
(15) | (начиная с C++20) |
month_weekday_last |
||
constexpr auto operator/( const std::chrono::month& m, const std::chrono::weekday_last& wdl ) noexcept -> std::chrono::month_weekday_last; |
(16) | (начиная с C++20) |
constexpr auto operator/( int m, const std::chrono::weekday_last& wdl ) noexcept -> std::chrono::month_weekday_last; |
(17) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::weekday_last& wdl, const std::chrono::month& m ) noexcept -> std::chrono::month_weekday_last; |
(18) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::weekday_last& wdl, int m ) noexcept -> std::chrono::month_weekday_last; |
(19) | (начиная с C++20) |
year_month_day |
||
constexpr auto operator/( const std::chrono::year_month& ym, const std::chrono::day& d ) noexcept -> std::chrono::year_month_day; |
(20) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::year_month& ym, int d ) noexcept -> std::chrono::year_month_day; |
(21) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::year& y, const std::chrono::month_day& md ) noexcept -> std::chrono::year_month_day; |
(22) | (начиная с C++20) |
constexpr auto operator/( int y, const std::chrono::month_day& md ) noexcept -> std::chrono::year_month_day; |
(23) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::month_day& md, const std::chrono::year& y ) noexcept -> std::chrono::year_month_day; |
(24) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::month_day& md, int y ) noexcept -> std::chrono::year_month_day; |
(25) | (начиная с C++20) |
year_month_day_last |
||
constexpr auto operator/( const std::chrono::year_month& ym, std::chrono::last_spec ) noexcept -> std::chrono::year_month_day_last; |
(26) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::year& y, const std::chrono::month_day_last& mdl ) noexcept -> std::chrono::year_month_day_last; |
(27) | (начиная с C++20) |
constexpr auto operator/( int y, const std::chrono::month_day_last& mdl ) noexcept -> std::chrono::year_month_day_last; |
(28) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::month_day_last& mdl, const std::chrono::year& y ) noexcept -> std::chrono::year_month_day_last; |
(29) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::month_day_last& mdl, int y ) noexcept -> std::chrono::year_month_day_last; |
(30) | (начиная с C++20) |
year_month_weekday |
||
constexpr auto operator/( const std::chrono::year_month& ym, const std::chrono::weekday_indexed& wdi ) noexcept -> std::chrono::year_month_weekday; |
(31) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::year& y, const std::chrono::month_weekday& mwd ) noexcept -> std::chrono::year_month_weekday; |
(32) | (начиная с C++20) |
constexpr auto operator/( int y, const std::chrono::month_weekday& mwd ) noexcept -> std::chrono::year_month_weekday; |
(33) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::month_weekday& mwd, const std::chrono::year& y ) noexcept -> std::chrono::year_month_weekday; |
(34) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::month_weekday& mwd, int y ) noexcept -> std::chrono::year_month_weekday; |
(35) | (начиная с C++20) |
year_month_weekday_last |
||
constexpr auto operator/( const std::chrono::year_month& ym, const std::chrono::weekday_last& wdl ) noexcept -> std::chrono::year_month_weekday_last; |
(36) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::year& y, const std::chrono::month_weekday_last& mwdl ) noexcept -> std::chrono::year_month_weekday_last; |
(37) | (начиная с C++20) |
constexpr auto operator/( int y, const std::chrono::month_weekday_last& mwdl ) noexcept -> std::chrono::year_month_weekday_last; |
(38) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::month_weekday_last& mwdl, const std::chrono::year& y ) noexcept -> std::chrono::year_month_weekday_last; |
(39) | (начиная с C++20) |
constexpr auto operator/( const std::chrono::month_weekday_last& mwdl, int y ) noexcept -> std::chrono::year_month_weekday_last; |
(40) | (начиная с C++20) |
Эти перегруженные версии operator/ обеспечивают обычный синтаксис для создания дат григорианского календаря.
Для создания полной даты принимается любая из следующих трёх последовательностей:
год/месяц/день,месяц/день/год,день/месяц/год.
В каждом случае день можно заменить одним из:
- std::chrono::last, для последнего дня месяца;
weekday[i], дляiго дня недели месяца;weekday[std::chrono::last], для последнего дня недели месяца.
Принимается простое целое число, если его значение однозначно из типов других операндов:2005y/4/5 разрешено, а 5/April/2005 нет.
Типы с неполной датой (year_month, month_day и т.д.) можно создать, не применяя второй operator/ в любой из трёх последовательностей.
Возвращаемое значение
1)
std::chrono::year_month(y, m)2)
std::chrono::year_month(y, std::chrono::month(m))3,6)
std::chrono::month_day(m, d)4)
std::chrono::month_day(m, std::chrono::day(d))5,7)
std::chrono::month_day(std::chrono::month(m), d)8,10)
std::chrono::month_day_last(m)9,11)
std::chrono::month_day_last(std::chrono::month(m))12,14)
std::chrono::month_weekday(m, wdi)13,15)
std::chrono::month_weekday(std::chrono::month(m), wdi)16,18)
std::chrono::month_weekday_last(m, wdl)17,19)
std::chrono::month_weekday_last(std::chrono::month(m), wdl)20)
std::chrono::year_month_day(ym.year(), ym.month(), d)21)
std::chrono::year_month_day(ym.year(), ym.month(), std::chrono::day(d))22,24)
std::chrono::year_month_day(y, md.month(), md.day())23,25)
std::chrono::year_month_day(std::chrono::year(y), md.month(), md.day())26)
std::chrono::year_month_day_last(ym.year(), std::chrono::month_day_last(ym.month()))27,29)
std::chrono::year_month_day_last(y, mdl)28,30)
std::chrono::year_month_day_last(std::chrono::year(y), mdl)31)
std::chrono::year_month_weekday(ym.year(), ym.month(), wdi)32,34)
std::chrono::year_month_weekday(y, mwd.month(), mwd.weekday_indexed())33,35)
std::chrono::year_month_weekday(std::chrono::year(y), mwd.month(), mwd.weekday_indexed())36)
std::chrono::year_month_weekday_last(ym.year(), ym.month(), wdl)37,39)
std::chrono::year_month_weekday_last(y, mwdl.month(), mwdl.weekday_last())38,40)
std::chrono::year_month_weekday_last(std::chrono::year(y), mwdl.month(), mwdl.weekday_last())Пример
Запустить этот код
#include <chrono>
using namespace std::chrono;
constexpr auto ym{2021y/8};
static_assert(ym == year_month(year(2021), August));
constexpr auto md{9/15d};
static_assert(md == month_day(September, day(15)));
constexpr auto mdl{October/last};
static_assert(mdl == month_day_last(month(10)));
constexpr auto mw{11/Monday[3]};
static_assert(mw == month_weekday(November, Monday[3]));
constexpr auto mwdl{December/Sunday[last]};
static_assert(mwdl == month_weekday_last(month(12), weekday_last(Sunday)));
// 3 порядка год/месяц/день, которые люди на самом деле используют
// на этой планете и за её пределами:
constexpr auto ymd{year(2021)/January/day(23)};
static_assert(ymd == month{1}/23/2021);
static_assert(ymd == day{23}/1/2021);
static_assert(ymd == year_month_day(2021y, month(January), 23d));
int main() {}