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

std::chrono::year::year

Материал из 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>
year() = default;
(1) (начиная с C++20)
constexpr explicit year( int y ) noexcept;
(2) (начиная с C++20)

Создает объект year.

1) Конструктор по умолчанию оставляет значение года неинициализированным.
2) Если y находится в диапазоне [-3276732767], создает объект year, содержащий значение года y. Иначе хранимое значение не определено.

Пример

#include <chrono>
#include <iostream>

int main() {
    using namespace std::chrono;

    constexpr int leap_years = [] {
        int count{};
        for (int i{year::min()}; i <= int{year::max()}; ++i)
            if (year{i}.is_leap()) // используется конструктор (2)
                ++count;
        return count;
    } ();

    static_assert(15891 == leap_years);

    std::cout << "В диапазоне [" << int(year::min()) << ", " << int(year::max()) << "] "
              << leap_years << " високосных года.\n";
}

Вывод:

В диапазоне [-32767, 32767] 15891 високосных года.