Namespaces
Variants

std::chrono::year_month_day:: year_month_day

From cppreference.net
year_month_day ( ) = default ;
(1) (seit C++20)
constexpr year_month_day ( const std:: chrono :: year & y,

const std:: chrono :: month & m,

const std:: chrono :: day & d ) noexcept ;
(2) (seit C++20)
constexpr year_month_day ( const std:: chrono :: year_month_day_last & ymdl ) noexcept ;
(3) (seit C++20)
constexpr year_month_day ( const std:: chrono :: sys_days & dp ) noexcept ;
(4) (seit C++20)
constexpr explicit year_month_day ( const std:: chrono :: local_days & dp ) noexcept ;
(5) (seit C++20)

Konstruiert ein year_month_day Objekt.

1) Standardkonstruktor lässt das Datum uninitialisiert.
2) Konstruiert ein year_month_day -Objekt, das das Jahr y , den Monat m und den Tag d speichert.
3) Konstruiert ein year_month_day -Objekt, das das Jahr ymdl. year ( ) , den Monat ymdl. month ( ) und den Tag ymdl. day ( ) speichert.
4) Konstruiert ein year_month_day -Objekt, das dasselbe Datum repräsentiert wie das von dp dargestellte.
5) Konstruiert ein year_month_day Objekt, das dasselbe Datum repräsentiert wie das durch dp dargestellte, als ob durch year_month_day ( sys_days ( dp. time_since_epoch ( ) ) ) .

Konstruktoren (3,4) definieren implizite Konvertierungen von std::chrono::year_month_day_last und std::chrono::sys_days , jeweils.

Für jedes year_month_day -Objekt ymd , das ein gültiges Datum repräsentiert ( ymd. ok ( ) == true ), ergibt die Konvertierung von ymd zu sys_days und zurück denselben Wert.

Hinweise

Ein year_month_day kann auch erstellt werden, indem man einen der partiellen Datumstypen std::chrono::year_month und std::chrono::month_day mit der fehlenden Komponente (Tag bzw. Jahr) mittels operator / kombiniert.

Beispiel

#include <chrono>
#include <iostream>
int main()
{
    using namespace std::chrono;
    constexpr auto ymd2 = std::chrono::year_month_day(
        2020y, std::chrono::January, 31d // Überladung (2)
    );
    std::cout << "ymd2: " << ymd2 << '\n';
    constexpr auto ymd3 = std::chrono::year_month_day(
        std::chrono::April / std::chrono::Monday[last] / 2023y // Überladung (3)
    );
    std::cout << "ymd3: " << ymd3 << '\n';
    const auto now = std::chrono::system_clock::now();
    const auto ymd4 = std::chrono::year_month_day(
        std::chrono::floor<std::chrono::days>(now) // Überladung (4)
    );
    std::cout << "ymd4: " << ymd4 << '\n';
}

Mögliche Ausgabe:

ymd2: 2020-01-31
ymd3: 2023-04-24
ymd4: 2023-08-30

Siehe auch

(C++20)
Konventionelle Syntax zur Erstellung von Gregorianischen Kalenderdaten
(Funktion)