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 year zadaný počet let . |
operator- |
Unární minus. |
operator-- |
Dekrementace roku. |
operator-= |
Odečítá zadaný počet let od tohoto year parametru . |
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 year
dny .
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 year
dne 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