Namensräume
Varianten
Aktionen

std::chrono::year_month_day_last

Von cppreference.com
< cpp‎ | chrono
 
 
 
 
Definiert in 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 feld-basierten Zeitpunkt mit einer Auflösung von std::chrono::days, unterliegt jedoch der Einschränkung, dass er nur den letzten Tag eines Monats darstellen kann.

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

year_month_day_last ist ein TriviallyCopyable StandardLayoutType.

Inhalt

[edit] Member functions

konstruiert ein year_month_day_last Objekt
(public member function) [edit]
modifiziert den Zeitpunkt um eine bestimmte Anzahl von Monaten oder Jahren
(public member function) [edit]
greift auf die Felder dieses Objekts zu
(public member function) [edit]
konvertiert zu einem std::chrono::time_point
(public member function) [edit]
prüft, ob dieses Objekt ein gültiges Datum darstellt
(public member function) [edit]

[edit] Nonmember functions

vergleicht zwei year_month_day_last Werte
(function) [edit]
addiert oder subtrahiert einen year_month_day_last und eine Anzahl von Jahren oder Monaten
(Funktion) [bearbeiten]
gibt ein year_month_day_last in einen Stream aus
(function template) [edit]

[edit] Helper classes

Formatierungsunterstützung für year_month_day_last
(Klassentemplate-Spezialisierung) [edit]
Hash-Unterstützung für std::chrono::year_month_day_last
(Klassentemplate-Spezialisierung)

[edit] Example

#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

[edit] See also

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