Namespaces
Variants

std::chrono:: year_month_day_last

From cppreference.net
Défini dans l'en-tête <chrono>
class year_month_day_last ;
(depuis C++20)

La classe year_month_day_last représente le dernier jour d'une année et d'un mois spécifiques. C'est un point temporel basé sur des champs, avec une résolution de std::chrono::days , soumis à la limite qu'il ne peut représenter que le dernier jour d'un mois.

std::chrono::years - et les opérations arithmétiques orientées std::chrono::months sont directement pris en charge. Une conversion implicite vers std::chrono::sys_days permet d'effectuer efficacement des opérations arithmétiques orientées std::chrono::days .

year_month_day_last est un TriviallyCopyable StandardLayoutType .

Table des matières

Fonctions membres

construit un objet year_month_day_last
(fonction membre publique)
modifie le point temporel d'un certain nombre de mois ou d'années
(fonction membre publique)
accède aux champs de cet objet
(fonction membre publique)
convertit en std::chrono::time_point
(fonction membre publique)
vérifie si cet objet représente une date valide
(fonction membre publique)

Fonctions non membres

compare deux valeurs year_month_day_last
(fonction)
ajoute ou soustrait un year_month_day_last et un certain nombre d'années ou de mois
(fonction)
(C++20)
écrit un year_month_day_last dans un flux
(modèle de fonction)

Classes d'assistance

prise en charge du formatage pour year_month_day_last
(spécialisation de modèle de classe)
prise en charge du hachage pour std::chrono::year_month_day_last
(spécialisation de modèle de classe)

Exemple

#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);
}

Sortie possible :

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

Voir aussi

représente une year , month et day spécifiques
(classe)