Freigeben über


month-Klasse

Stellt einen Monat eines Jahres dar. Beispiel: Juli.

Syntax

class month; // C++20

Hinweise

Normalerweise enthält ein month Wert im Bereich [1, 12]. Sie kann auch nicht negative Werte außerhalb dieses Bereichs enthalten. Siehe "Month"-Konstanten unten für Konstanten, die Sie mit der month Klasse verwenden können.

Mitglieder

Name Beschreibung
Konstruktoren Erstellen Sie ein month.
ok Stellen Sie sicher, dass sich der Monatswert im gültigen Bereich [1,12] befindet.
operator++ Erhöhen Sie die month.
operator+= Fügen Sie dieser monthAngabe die angegebene Anzahl von Monaten hinzu.
operator-- Erhöhen Sie diesen monthWert.
operator-= Subtrahieren Sie die angegebene Anzahl von Monaten von diesem month.
operator unsigned Rufen Sie den month Wert ab.

Nicht-Member

Name Beschreibung
from_stream Analysieren Eines month aus dem angegebenen Datenstrom mithilfe des angegebenen Formats.
operator+ Add specified number of months to this month, returning a new month instance.
operator- Subtrahieren Sie die angegebene Anzahl von Monaten von diesem Monat. Gibt eine neue month-Instanz zurück.
operator== Bestimmen Sie, ob zwei Monate gleich sind.
operator<=> Vergleichen Sie diesen Monat mit einem anderen Monat. Die >, >=, <=, <, != Operatoren werden vom Compiler synthetisiert.
operator<< Gibt einen month an den angegebenen Datenstrom aus.

Anforderungen

Header: <chrono> (seit C++20)

Namespace:std::chrono

Compileroption: /std:c++latest

Konstruktoren

Erstellen Sie ein month.

1) month() = default;
2) explicit constexpr month(unsigned m) noexcept;

Parameter

m
Erstellen eines month mit Wert m.

Hinweise

1) Der Standardkonstruktor initialisiert nicht den Tagwert.
2) Erstellen Sie einen month mit dem Tagwert initialisiert in m.

ok

Hiermit wird überprüft, ob der Wert, der in dieser month-Klasse gespeichert ist, im gültigen Bereich liegt.

constexpr bool ok() const noexcept;

Rückgabewert

true wenn sich der Monatswert im Bereich [1,12] befindet. Andernfalls false.

operator++

Erhöhen Sie den Monatswert.

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

Rückgabewert

1) Ein Bezug auf *this Monat , nachdem er erhöht wurde (ein Postfix-Inkrement).
2) Eine Kopie der month, 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()
{
    month m{ January };
    month m2{4}; // April

    std::cout << m << " " << ++m << "\n"; // constexpr month& operator++() noexcept
    std::cout << m << " " << m++ << "\n"; // constexpr month operator++(int) noexcept
    std::cout << m << "\n";
    std::cout << m2 << "\n";

    return 0;
}
Jan Feb
Feb Feb
Mar
Apr

Hinweise

Wenn das Ergebnis 12 überschreitet, wird es auf 1 festgelegt.

operator--

Subtrahieren Sie 1 vom Monatswert.

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

Rückgabewert

1) Ein Verweis darauf *this month , nachdem er dekrementiert wurde (eine Postfix-Dekrementierung).
2) Eine Kopie der month vor ihr dekrementierten (Präfix-Dekrementierung).

Beispiel: operator--

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

using namespace std;
using namespace std::chrono;

int main()
{
    month m{May};

    cout << m << " " << --m << "\n"; // constexpr month& operator++() noexcept
    cout << m << " " << m-- << "\n"; // constexpr month operator++(int) noexcept
    cout << m << "\n";

    return 0;
}
May Apr
Apr Apr
Mar

Hinweise

Wenn das dekrementierte Ergebnis kleiner als 1 ist, wird es auf 12 festgelegt.

operator+=

Fügen Sie diesem monthVorgang Monate hinzu.

constexpr month& operator+=(const months& m) noexcept;

Parameter

m
Die Anzahl der hinzuzufügenden Monate.

Rückgabewert

*this

operator-=

Subtrahieren months Sie von diesem month.

constexpr month& operator-=(const months& m) noexcept;

Parameter

m
Die Monate, die subtrahiert werden sollen.

Rückgabewert

*this.

operator unsigned

Rufen Sie den nicht signierten Wert ab month .

explicit constexpr operator unsigned() const noexcept;

Rückgabewert

Der nicht signierte Wert dieses Werts month

Beispiel: operator unsigned()

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

using namespace std::chrono;

int main()
{
    month m{July};
    unsigned monthValue = static_cast<unsigned>(m);
    std::cout << monthValue << "\n";

    return 0;
}
7

Monatskonstanten

(C++20) Die <chrono> Kopfzeile definiert die folgenden Konstanten, mit denen Sie ihren Code einfacher, typsicherheit und wartungsfreundlicher verwenden month können. Diese Konstanten befinden sich im Bereich, wenn std::chrono sie sich im Bereich befinden.

// Calendrical constants
inline constexpr month January{1};
inline constexpr month February{2};
inline constexpr month March{3};
inline constexpr month April{4};
inline constexpr month May{5};
inline constexpr month June{6};
inline constexpr month July{7};
inline constexpr month August{8};
inline constexpr month September{9};
inline constexpr month October{10};
inline constexpr month November{11};
inline constexpr month December{12};

Siehe auch

<chrono>
month_day Klasse
month_day_last Klasse
month_weekday Klasse
month_weekday_last-Klasse