day-Klasse

Stellt einen Tag des Monats dar. Beispielsweise der 25. Tag des Monats.

Syntax

class day; // C++20

Hinweise

Normalerweise enthält ein day Wert im Bereich [1, 31]. Es kann nicht negative Werte außerhalb dieses Bereichs enthalten, aber das Verhalten ist nicht angegeben, wenn es nicht innerhalb des Bereichs [0, 255] liegt.

Mitglieder

Name Beschreibung
Konstruktoren Erstellen Sie ein day.
ok Stellen Sie sicher, dass sich der Tagwert im gültigen Bereich [1,31] befindet.
operator++ Erhöhen Sie diesen dayWert.
operator+= Add the specified number of days to this day.
operator-- Decrement the day.
operator-= Subtrahieren der angegebenen Anzahl von Tagen davon day
operator unsigned Rufen Sie den Tageswert als ganze Zahl ohne Vorzeichen ab.

Nicht-Member

Name Beschreibung
from_stream Analysieren Eines day aus dem angegebenen Datenstrom mithilfe des angegebenen Formats.
operator+ Add specified number of days to this day, returning a new day object.
operator- Subtrahieren Sie die angegebene Anzahl von Tagen davon day, wobei ein neues day Objekt zurückgegeben wird.
operator== Hiermit wird bestimmt, ob zwei day-Instanzen gleich sind.
operator<=> Vergleichen Sie dies day mit einem anderen day. Die >, >=, <=, <, != Operatoren werden vom Compiler synthetisiert.
operator<< Gibt einen day an den angegebenen Datenstrom aus.
operator""d Erstellen Sie ein day Literal für einen Tag im Monat.

Anforderungen

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

Namespace:std::chrono

Compileroption:/std:c++latest

Konstruktoren

Erstellt ein Objekt vom Typ day.

1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;

Parameter

d
Erstellen eines day mit Wert d.

Hinweise

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

Beispiel: Erstellen einer day-Klasse

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

using namespace std::chrono;

int main()
{
    day d{1}; // day 1
    day d2 = 2d; // day 2

    std::cout << d << ", " << d2;

    return 0;
}
01, 02

ok

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

constexpr bool ok() const noexcept;

Rückgabewert

true wenn sich der Tagwert im Bereich [1,31] befindet. Andernfalls false.

operator++

Addieren Sie 1 zum Tageswert.

1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;

Rückgabewert

1) Ein Verweis darauf *thisday, nachdem er erhöht wurde (ein Postfix-Inkrement).
2) Eine Kopie der day, 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()
{
    day d{1};

    std::cout << d << " " << ++d << "\n"; // constexpr day& operator++() noexcept
    std::cout << d << " " << d++ << "\n"; // constexpr day operator++(int) noexcept
    std::cout << d;

    return 0;
}
01 02
02 02
03

Hinweise

Wenn das inkrementierte Ergebnis außerhalb des Bereichs [0, 255] liegt, ist der gespeicherte Wert nicht angegeben.

operator--

Subtrahieren Sie 1 vom Tagwert.

1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;

Rückgabewert

1) Ein Verweis auf *this einen Tag , nachdem er dekrementiert wurde (eine Postfix-Dekrementierung).
2) Eine Kopie der *day, bevor sie dekrementiert wurde (präfix decrement).

Beispiel: operator--

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

int main()
{
    day d{5};
    std::cout << d << " " << --d << "\n"; // constexpr day& operator--() noexcept
    std::cout << d << " " << d-- << "\n"; // constexpr day operator--(int) noexcept
    std::cout << d << "\n";

    return 0;
}
05 04
04 04
03

Hinweise

Wenn das dekrementierte Ergebnis außerhalb des Bereichs [0, 255] liegt, ist der gespeicherte Wert nicht angegeben.

operator+=

Fügen Sie dieser dayDatei Tage hinzu.

constexpr day& operator+=(const days& d) noexcept;

Parameter

d
Die Anzahl zu addierender Tage.

Rückgabewert

*this

Wenn sich das Ergebnis außerhalb des Bereichs [0, 255] befindet, ist der gespeicherte Wert nicht angegeben.

operator-=

Subtrahieren Sie Tage von diesem day.

constexpr day& operator-=(const days& d) noexcept;

Parameter

d
Die Anzahl der Tage, die subtrahiert werden sollen.

Rückgabewert

*this. Wenn sich das Ergebnis außerhalb des Bereichs [0, 255] befindet, ist der gespeicherte Wert nicht angegeben.

operator unsigned

Rufen Sie den day Wert ab.

explicit constexpr operator unsigned() const noexcept;

Rückgabewert

Der Wert des day

Beispiel: operator unsigned()

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

int main()
{
    chrono::day d{14d};
    unsigned dayValue = static_cast<unsigned>(d);
    cout << dayValue << "\n";
    
    return 0;
}
14

Siehe auch

<chrono>
month_day-Klasse
month_day_last-Klasse
year_month_day
year_month_day_last
Headerdateienreferenz