Пространства имён
Варианты
Действия

std::chrono::operator/ (calendar)

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
 
<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() {}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.