Namespaces
Variants

std::chrono::year_month_day:: year_month_day

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

const std:: chrono :: month & m,

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

Construit un objet year_month_day .

1) Le constructeur par défaut laisse la date non initialisée.
2) Construit un objet year_month_day qui stocke l'année y , le mois m et le jour d .
3) Construit un objet year_month_day qui stocke l'année ymdl. year ( ) , le mois ymdl. month ( ) et le jour ymdl. day ( ) .
4) Construit un objet year_month_day qui représente la même date que celle représentée par dp .
5) Construit un objet year_month_day qui représente la même date que celle représentée par dp , comme s'il était créé par year_month_day ( sys_days ( dp. time_since_epoch ( ) ) ) .

Les constructeurs (3,4) définissent des conversions implicites depuis std::chrono::year_month_day_last et std::chrono::sys_days , respectivement.

Pour tout objet year_month_day ymd représentant une date valide ( ymd. ok ( ) == true ), la conversion de ymd en sys_days et inversement produit la même valeur.

Notes

Un year_month_day peut également être créé en combinant l'un des types de date partielle std::chrono::year_month et std::chrono::month_day avec l'élément manquant (jour et année, respectivement) en utilisant operator / .

Exemple

#include <chrono>
#include <iostream>
int main()
{
    using namespace std::chrono;
    constexpr auto ymd2 = std::chrono::year_month_day(
        2020y, std::chrono::January, 31d // surcharge (2)
    );
    std::cout << "ymd2: " << ymd2 << '\n';
    constexpr auto ymd3 = std::chrono::year_month_day(
        std::chrono::April / std::chrono::Monday[last] / 2023y // surcharge (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) // surcharge (4)
    );
    std::cout << "ymd4: " << ymd4 << '\n';
}

Sortie possible :

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

Voir aussi

(C++20)
syntaxe conventionnelle pour la création de dates du calendrier grégorien
(fonction)