std::chrono::operator/ (calendar)
| Defined in header  <chrono> | ||
| year_month | ||
| constexpr auto operator/( const std::chrono::year& y,                           const std::chrono::month& m ) noexcept | (1) | (since C++20) | 
| constexpr auto operator/( const std::chrono::year& y, int m ) noexcept -> std::chrono::year_month; | (2) | (since C++20) | 
| month_day | ||
| constexpr auto operator/( const std::chrono::month& m,                           const std::chrono::day& d ) noexcept | (3) | (since C++20) | 
| constexpr auto operator/( const std::chrono::month& m, int d ) noexcept -> std::chrono::month_day; | (4) | (since C++20) | 
| constexpr auto operator/( int m, const std::chrono::day& d ) noexcept -> std::chrono::month_day; | (5) | (since C++20) | 
| constexpr auto operator/( const std::chrono::day& d,                           const std::chrono::month& m ) noexcept | (6) | (since C++20) | 
| constexpr auto operator/( const std::chrono::day& d, int m ) noexcept -> std::chrono::month_day; | (7) | (since C++20) | 
| month_day_last | ||
| constexpr auto operator/( const std::chrono::month& m,                          std::chrono::last_spec ) noexcept | (8) | (since C++20) | 
| constexpr auto operator/( int m, std::chrono::last_spec ) noexcept -> std::chrono::month_day_last; | (9) | (since C++20) | 
| constexpr auto operator/( std::chrono::last_spec,                           const std::chrono::month& m ) noexcept | (10) | (since C++20) | 
| constexpr auto operator/( std::chrono::last_spec, int m ) noexcept -> std::chrono::month_day_last; | (11) | (since C++20) | 
| month_weekday | ||
| constexpr auto operator/( const std::chrono::month& m,                           const std::chrono::weekday_indexed& wdi ) noexcept  | (12) | (since C++20) | 
| constexpr auto operator/( int m, const std::chrono::weekday_indexed& wdi ) noexcept -> std::chrono::month_weekday; | (13) | (since C++20) | 
| constexpr auto operator/( const std::chrono::weekday_indexed& wdi,                           const std::chrono::month& m ) noexcept | (14) | (since C++20) | 
| constexpr auto operator/( const std::chrono::weekday_indexed& wdi, int m ) noexcept -> std::chrono::month_weekday; | (15) | (since C++20) | 
| month_weekday_last | ||
| constexpr auto operator/( const std::chrono::month& m,                           const std::chrono::weekday_last& wdl ) noexcept | (16) | (since C++20) | 
| constexpr auto operator/( int m, const std::chrono::weekday_last& wdl ) noexcept -> std::chrono::month_weekday_last; | (17) | (since C++20) | 
| constexpr auto operator/( const std::chrono::weekday_last& wdl,                           const std::chrono::month& m ) noexcept | (18) | (since C++20) | 
| constexpr auto operator/( const std::chrono::weekday_last& wdl, int m ) noexcept -> std::chrono::month_weekday_last; | (19) | (since C++20) | 
| year_month_day | ||
| constexpr auto operator/( const std::chrono::year_month& ym,                           const std::chrono::day& d ) noexcept | (20) | (since C++20) | 
| constexpr auto operator/( const std::chrono::year_month& ym, int d ) noexcept -> std::chrono::year_month_day; | (21) | (since C++20) | 
| constexpr auto operator/( const std::chrono::year& y,                           const std::chrono::month_day& md ) noexcept | (22) | (since C++20) | 
| constexpr auto operator/( int y, const std::chrono::month_day& md ) noexcept -> std::chrono::year_month_day; | (23) | (since C++20) | 
| constexpr auto operator/( const std::chrono::month_day& md,                           const std::chrono::year& y ) noexcept | (24) | (since C++20) | 
| constexpr auto operator/( const std::chrono::month_day& md, int y ) noexcept -> std::chrono::year_month_day; | (25) | (since C++20) | 
| year_month_day_last | ||
| constexpr auto operator/( const std::chrono::year_month& ym,                          std::chrono::last_spec ) noexcept | (26) | (since C++20) | 
| constexpr auto operator/( const std::chrono::year& y,                           const std::chrono::month_day_last& mdl ) noexcept | (27) | (since C++20) | 
| constexpr auto operator/( int y, const std::chrono::month_day_last& mdl ) noexcept -> std::chrono::year_month_day_last; | (28) | (since C++20) | 
| constexpr auto operator/( const std::chrono::month_day_last& mdl,                           const std::chrono::year& y ) noexcept | (29) | (since C++20) | 
| constexpr auto operator/( const std::chrono::month_day_last& mdl, int y ) noexcept -> std::chrono::year_month_day_last; | (30) | (since C++20) | 
| year_month_weekday | ||
| constexpr auto operator/( const std::chrono::year_month& ym,                           const std::chrono::weekday_indexed& wdi ) noexcept | (31) | (since C++20) | 
| constexpr auto operator/( const std::chrono::year& y,                           const std::chrono::month_weekday& mwd ) noexcept | (32) | (since C++20) | 
| constexpr auto operator/( int y, const std::chrono::month_weekday& mwd ) noexcept -> std::chrono::year_month_weekday; | (33) | (since C++20) | 
| constexpr auto operator/( const std::chrono::month_weekday& mwd,                           const std::chrono::year& y ) noexcept | (34) | (since C++20) | 
| constexpr auto operator/( const std::chrono::month_weekday& mwd, int y ) noexcept -> std::chrono::year_month_weekday; | (35) | (since C++20) | 
| year_month_weekday_last | ||
| constexpr auto operator/( const std::chrono::year_month& ym,                           const std::chrono::weekday_last& wdl ) noexcept | (36) | (since C++20) | 
| constexpr auto operator/( const std::chrono::year& y,                           const std::chrono::month_weekday_last& mwdl ) noexcept | (37) | (since C++20) | 
| constexpr auto operator/( int y, const std::chrono::month_weekday_last& mwdl ) noexcept -> std::chrono::year_month_weekday_last; | (38) | (since C++20) | 
| constexpr auto operator/( const std::chrono::month_weekday_last& mwdl,                           const std::chrono::year& y ) noexcept | (39) | (since C++20) | 
| constexpr auto operator/( const std::chrono::month_weekday_last& mwdl, int y ) noexcept -> std::chrono::year_month_weekday_last; | (40) | (since C++20) | 
These operator/ overloads provide a conventional syntax for the creation of Gregorian calendar dates.
For creation of a full date, any of the following three orders are accepted:
-  year/month/day
-  month/day/year
-  day/month/year.
In each case day can replaced with one of:
- std::chrono::last, for the last day of the month;
-  weekday[i], for the i-th weekday of the month;
-  weekday[std::chrono::last], for the last weekday of the month.
A plain integer is accepted if its meaning is unambiguous from the types of other operands: 2005y/4/5 is allowed, but 5/April/2005 is not.
Partial-date types (year_month, month_day, etc.) can be created by not applying the second operator/ in any of the three orders.
Return value
Example
#include <iostream> #include <chrono> using namespace std::chrono; int main() { std::cout << std::boolalpha; // standard provides 2021y as option for std::chrono::year(2021) // standard provides 15d as option for std::chrono::day(15) constexpr auto ym {year(2021)/8}; std::cout << (ym == year_month(year(2021), August)) << ' '; constexpr auto md {9/day(15)}; std::cout << (md == month_day(September, day(15))) << ' '; constexpr auto mdl {October/last}; std::cout << (mdl == month_day_last(month(10))) << ' '; constexpr auto mw {11/Monday[3]}; std::cout << (mw == month_weekday(November, Monday[3])) << ' '; constexpr auto mwdl {December/Sunday[last]}; std::cout << (mwdl == month_weekday_last(month(12), weekday_last(Sunday))) << ' '; // Those three year/month/day orders that people actually use on this planet: constexpr auto ymd {year(2021)/January/day(23)}; static_assert(ymd == month{1}/23/2021); static_assert(ymd == day{23}/1/2021); std::cout << (ymd == year_month_day(2021y, month(January), 23d)) << '\n'; }
Output:
true true true true true true