Freigeben über


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 yearDatei 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