Sdílet prostřednictvím


Třída year

Představuje rok v gregoriánském kalendáři.

Syntaxe

class year; // C++20

Poznámky

Hodnota year roku v rozmezí -32767 až 32767 může obsahovat rok.

Členové

Název Popis
Konstruktory Vytvoření year
is_leap Určí, jestli je rok přestupný rok.
max Vrátí nejvyšší možnou hodnotu roku.
min Vrátí nejmenší možnou hodnotu roku.
ok Ověřte, že hodnota roku je v platném rozsahu [-32767, 32767].
operator+ Unární plus.
operator++ Zvýší rok.
operator+= Přidejte k tomu yearzadaný počet let .
operator- Unární minus.
operator-- Dekrementace roku.
operator-= Odečítá zadaný počet let od tohoto yearparametru .
operator int year Získá hodnotu.

Nečlenové

Název Popis
from_stream Parsování year datového proudu pomocí zadaného formátu
operator+ Přidejte roky.
operator- Odečítá se roky.
operator== Určete, jestli jsou dva roky stejné.
operator<=> Porovnejte to year s jinou year. Operátory >, >=, <=, <, != jsou syntetizovány kompilátorem.
operator<< year Vypíše do daného datového proudu.
operator""y Vytvořte year literál.

Požadavky

Hlavička: <chrono> (od C++20)

Obor názvů: std::chrono

Možnost kompilátoru: /std:c++latest

Konstruktory

Vytvoření .year

1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;

Parametry

y
Vytvořte hodnotu year s hodnotou y.

Poznámky

1) Výchozí konstruktor neicializuje year hodnotu.
2) Vytvořte s zadanou year hodnotou.

Příklad: Vytvoření year

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year y{2020};
    year y2 = 2021y;
    
    std::cout << y << ", " << y2;

    return 0;
}
2020, 2021

is_leap

Zkontrolujte, jestli je hodnota uložená v tomto year rozsahu.

constexpr bool is_leap() const noexcept;

Vrácená hodnota

true pokud je hodnota roku přestupný rok. V opačném případě hodnota false. Přestupný rok je rok dělitelný 4, ale ne 100 - nebo je dělitelný 400.

max

Vrátí největší možný rok.

static constexpr year max() noexcept;

Vrácená hodnota

year{32767}

min

Vrátí nejmenší možný rok.

static constexpr year min() noexcept;

Vrácená hodnota

year{-32767}

ok

Zkontrolujte, jestli je hodnota uložená v tomto year rozsahu.

constexpr bool ok() const noexcept;

Vrácená hodnota

true pokud je hodnota roku v rozsahu [-32676, 32767]. V opačném případě hodnota false.

operator+

Použít unární plus.

constexpr year operator+() const noexcept;

Vrácená hodnota

Návraty *this

Příklad: unární operator+

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
   year y{-1};
   std::cout << +y;
   return 0;
}
-0001

operator++

Přidejte 1 k hodnotě roku.

1) constexpr year& operator++() noexcept;
2) constexpr year operator++(int) noexcept;

Vrácená hodnota

1) Vrátí odkaz na tento rok po jeho zvýšení (přírůstek přípony).
2) Vrátí kopii year, před zvýšením (předpona inkrementace).

Příklad: operator++

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year y{2021};

    std::cout << y << " " << ++y << "\n"; // constexpr year& operator++() noexcept
    std::cout << y << " " << y++ << "\n"; // constexpr year operator++(int) noexcept
    std::cout << y << "\n";
    return 0;
}
2021 2022
2022 2022
2023

Poznámky

Pokud zvýšení výsledku překročí 32767, přeteče na -32768.

operator-

Unární minus. Negovat .year

constexpr year operator-() const noexcept; // C++20

Vrácená hodnota

Vrátí negatedovanou kopii year.

Příklad: unární operator-

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
   year y{1977};
   std::cout << -y << '\n';

   return 0;
}
-1977

operator--

Odečítá od hodnoty roku 1.

1) constexpr year& operator--() noexcept;
2) constexpr year operator--(int) noexcept;

Vrácená hodnota

1) Odkaz na tento year odkaz po dekrementování (dekrementace přípony).
2) Kopie year dříve, než byla dekrementována (dekrementace předpony).

Příklad: operator--

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
   year y{2021};

    std::cout << y << " " << --y << "\n"; // constexpr year& operator++() noexcept
    std::cout << y << " " << y-- << "\n"; // constexpr year operator++(int) noexcept
    std::cout << y << "\n";

    return 0;
}
2021 2020
2020 2020
2019

Poznámky

Pokud je dekrementovaný výsledek menší než -32768, nastaví se na hodnotu 32767.

operator+=

Přidejte do tohoto dne yeardny .

constexpr year& operator+=(const years& y) noexcept;

Parametry

y
Počet roků, které se mají přičíst.

Vrácená hodnota

*this Pokud zvýšení výsledku překročí 32767, přeteče na -32768.

operator-=

Odečítá od tohoto yeardne dny .

constexpr year& operator-=(const years& y) noexcept;

Parametry

y
Počet roků, které se mají odečíst.

Vrácená hodnota

*this. Pokud je dekrementovaný výsledek menší než -32768, nastaví se na hodnotu 32767.

operator int

year Získá hodnotu.

explicit constexpr operator int() const noexcept;

Vrácená hodnota

Hodnota year

Příklad: operator int()

// compile using: /std:c++latest

 #include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year y{2020};
    int yearValue = static_cast<int>(y);
    std::cout << yearValue;

    return 0;
}
2020

Viz také

<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
Referenční informace k souborům hlaviček