Namespaces
Variants

std::chrono:: year_month_day_last

From cppreference.net
Definiert im Header <chrono>
class year_month_day_last ;
(seit C++20)

Die Klasse year_month_day_last repräsentiert den letzten Tag eines bestimmten Jahres und Monats. Es handelt sich um einen feldbasierten Zeitpunkt mit einer Auflösung von std::chrono::days , mit der Einschränkung, dass nur der letzte Tag eines Monats dargestellt werden kann.

std::chrono::years - und std::chrono::months -orientierte Arithmetik werden direkt unterstützt. Eine implizite Konvertierung zu std::chrono::sys_days ermöglicht eine effiziente Ausführung von std::chrono::days -orientierter Arithmetik.

year_month_day_last ist ein TriviallyCopyable StandardLayoutType .

Inhaltsverzeichnis

Memberfunktionen

konstruiert ein year_month_day_last -Objekt
(öffentliche Elementfunktion)
modifiziert den Zeitpunkt um eine Anzahl von Monaten oder Jahren
(öffentliche Elementfunktion)
greift auf die Felder dieses Objekts zu
(öffentliche Elementfunktion)
konvertiert zu einem std::chrono::time_point
(öffentliche Elementfunktion)
prüft, ob dieses Objekt ein gültiges Datum repräsentiert
(öffentliche Elementfunktion)

Nicht-Member-Funktionen

vergleicht zwei year_month_day_last Werte
(Funktion)
addiert oder subtrahiert einen year_month_day_last und eine Anzahl von Jahren oder Monaten
(Funktion)
(C++20)
gibt einen year_month_day_last in einen Stream aus
(Funktions-Template)

Hilfsklassen

Formatierungsunterstützung für year_month_day_last
(Klassen-Template-Spezialisierung)
Hash-Unterstützung für std::chrono::year_month_day_last
(Klassen-Template-Spezialisierung)

Beispiel

#include <chrono>
#include <iostream>
int main()
{
    const auto ymd = std::chrono::year_month_day
    {
        std::chrono::floor<std::chrono::days>(std::chrono::system_clock::now())
    };
    const std::chrono::year_month_day_last ymdl
    {
        ymd.year(), ymd.month() / std::chrono::last
    };
    std::cout << "The last day of present month (" << ymdl << ") is: "
              << std::chrono::year_month_day{ymdl}.day() << '\n';
    // The 'last' object can be placed wherever it is legal to place a 'day':
    using namespace std::chrono;
    constexpr std::chrono::year_month_day_last
        ymdl1 = 2023y / February / last,
        ymdl2 = last / February / 2023y,
        ymdl3 = February / last / 2023y;
    static_assert(ymdl1 == ymdl2 && ymdl2 == ymdl3);
}

Mögliche Ausgabe:

The last day of present month (2023/Aug/last) is: 31

Siehe auch

repräsentiert ein bestimmtes year , month und day
(Klasse)