Namespaces
Variants

std::chrono::year_month_day_last:: operator sys_days, std::chrono::year_month_day_last:: operator local_days

From cppreference.net
constexpr operator std:: chrono :: sys_days ( ) const noexcept ;
(1) (depuis C++20)
constexpr explicit operator std:: chrono :: local_days ( ) const noexcept ;
(2) (depuis C++20)

Convertit * this en un std::chrono::time_point représentant la même date que ce year_month_day_last . Ceci est équivalent à composer un year_month_day à partir de year() , month() et day() et à convertir ce year_month_day vers le type de destination.

1) Équivalent à std:: chrono :: sys_days ( year ( ) / month ( ) / day ( ) ) .
2) Équivalent à std:: chrono :: local_days ( year ( ) / month ( ) / day ( ) ) .

Exemple

#include <array>
#include <chrono>
#include <iostream>
#include <string_view>
using namespace std::chrono;
using namespace std::literals;
int main()
{
    constexpr std::chrono::year y{2023y};
    constexpr std::array quarters{"1st"sv, "2nd"sv, "3rd"sv, "4th"sv};
    constexpr auto mq{12 / 4}; // months per quarter        
    std::cout << "En l'année " << static_cast<int>(y) << '\n';
    for (auto q = 1; q < 5; ++q)
    {
        const auto ls = y / std::chrono::month(q * mq) / Sunday[last];
        const auto ld = y / std::chrono::month(q * mq) / last;
        // subtract last Sunday from last day for day of week
        const auto index = (sys_days(ld) - sys_days(ls)).count();
        std::cout << "Le " << quarters[q - 1] << " trimestre se termine un "  
                  << std::chrono::weekday(index) << '\n';
    }
}

Sortie :

En l'année 2023
Le 1st trimestre se termine un Fri
Le 2nd trimestre se termine un Fri
Le 3rd trimestre se termine un Sat
Le 4th trimestre se termine un Sun

Voir aussi

convertit en un std::chrono::time_point
(fonction membre publique de std::chrono::year_month_day )