year
-Klasse
Stellt ein Jahr im gregorianischen Kalender dar.
Syntax
class year; // C++20
Hinweise
Ein year
Wert kann einen Jahreswert zwischen -32767 und 32767 enthalten.
Mitglieder
Name | Beschreibung |
---|---|
Konstruktoren | Erstellen eines year |
is_leap |
Ermitteln Sie, ob das Jahr ein Schaltjahr ist. |
max |
Gibt den größten möglichen Jahreswert zurück. |
min |
Gibt den kleinsten möglichen Jahreswert zurück. |
ok |
Überprüfen Sie, ob sich der Jahreswert im gültigen Bereich befindet [-32767, 32767]. |
operator+ |
Unär plus. |
operator++ |
Erhöhen Sie das Jahr. |
operator+= |
Add the specified number of years to this year . |
operator- |
Unär minus. |
operator-- |
Erhöhen Sie das Jahr. |
operator-= |
Subtrahieren Sie die angegebene Anzahl von Jahren von diesem year . |
operator int |
Rufen Sie den year Wert ab. |
Nicht-Member
Name | Beschreibung |
---|---|
from_stream |
Analysieren eines year Datenstroms mithilfe des angegebenen Formats |
operator+ |
Fügen Sie Jahre hinzu. |
operator- |
Subtrahieren sie Jahre. |
operator== |
Bestimmen Sie, ob zwei Jahre gleich sind. |
operator<=> |
Vergleichen Sie dies year mit einem anderen year . Die >, >=, <=, <, != Operatoren werden vom Compiler synthetisiert. |
operator<< |
Gibt einen year an den angegebenen Datenstrom aus. |
operator""y |
Erstellen Sie ein year Literal. |
Anforderungen
Header: <chrono>
(seit C++20)
Namespace:std::chrono
Compileroption: /std:c++latest
Konstruktoren
Erstellen Sie ein year
.
1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;
Parameter
y
Erstellen eines year
mit Wert y
.
Hinweise
1) Der Standardkonstruktor initialisiert den year
Wert nicht.
2) Erstellen sie mit year
dem angegebenen Wert.
Beispiel: Erstellen einer year
-Klasse
// 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
Hiermit wird überprüft, ob der Wert, der in dieser year
-Klasse gespeichert ist, im gültigen Bereich liegt.
constexpr bool is_leap() const noexcept;
Rückgabewert
true
wenn der Jahreswert ein Schaltjahr ist. Andernfalls false
.
Ein Schaltjahr ist ein Jahr divisierbar durch 4, aber nicht um 100 - oder ist teilbar durch 400.
max
Gibt das größte mögliche Jahr zurück.
static constexpr year max() noexcept;
Rückgabewert
year{32767}
min
Gibt das kleinste mögliche Jahr zurück.
static constexpr year min() noexcept;
Rückgabewert
year{-32767}
ok
Hiermit wird überprüft, ob der Wert, der in dieser year
-Klasse gespeichert ist, im gültigen Bereich liegt.
constexpr bool ok() const noexcept;
Rückgabewert
true
wenn sich der Jahreswert im Bereich [-32676, 32767] befindet. Andernfalls false
.
operator+
Anwenden eines unären Pluszeichens.
constexpr year operator+() const noexcept;
Rückgabewert
Gibt *this
zurück.
Beispiel: unär 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++
Addieren Sie 1 zum Jahreswert.
1) constexpr year& operator++() noexcept;
2) constexpr year operator++(int) noexcept;
Rückgabewert
1) Gibt den Verweis auf dieses Jahr zurück, nachdem es erhöht wurde (ein Postfix-Inkrement).
2) Gibt eine Kopie der year
, bevor sie erhöht wurde (ein Präfix inkrementiert).
Beispiel: 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
Hinweise
Wenn das inkrementierte Ergebnis 32767 überschreitet, überläuft es auf -32768
operator-
Unär minus. Verwerfen Sie die year
.
constexpr year operator-() const noexcept; // C++20
Rückgabewert
Gibt eine negierte Kopie der .year
Beispiel: unär 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--
Subtrahieren Sie 1 vom Jahreswert.
1) constexpr year& operator--() noexcept;
2) constexpr year operator--(int) noexcept;
Rückgabewert
1) Ein Verweis darauf year
, nachdem er dekrementiert wurde (eine Postfix-Dekrementierung).
2) Eine Kopie der year
vor ihr dekrementierten (Präfix-Dekrementierung).
Beispiel: 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
Hinweise
Wenn das verringerte Ergebnis kleiner als -32768 ist, wird es auf 32767 festgelegt.
operator+=
Fügen Sie dieser year
Datei Tage hinzu.
constexpr year& operator+=(const years& y) noexcept;
Parameter
y
Die Anzahl der hinzuzufügenden Jahre.
Rückgabewert
*this
Wenn das inkrementierte Ergebnis 32767 überschreitet, überläuft es auf -32768.
operator-=
Subtrahieren Sie Tage von diesem year
.
constexpr year& operator-=(const years& y) noexcept;
Parameter
y
Die Anzahl der Jahre, die subtrahiert werden sollen.
Rückgabewert
*this
. Wenn das verringerte Ergebnis kleiner als -32768 ist, wird es auf 32767 festgelegt.
operator int
Rufen Sie den year
Wert ab.
explicit constexpr operator int() const noexcept;
Rückgabewert
Der Wert des year
Beispiel: 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
Siehe auch
<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
Headerdateienreferenz