Namespaces
Variants

std::chrono::month_day:: ok

From cppreference.net
constexpr bool ok ( ) const noexcept ;
(начиная с C++20)

Определяет, хранит ли этот month_day допустимую комбинацию месяца и дня.

Комбинация является корректной, если month() представляет корректный месяц ( month ( ) . ok ( ) == true ), unsigned { day ( ) } >= 1 , и unsigned { day ( ) } <= D , где D — количество дней в месяце, представленном month() . Количество дней в феврале считается равным 29.

Возвращаемое значение

true если комбинация месяца и дня является корректной, в противном случае false.

Пример

#include <chrono>
#include <iostream>
int main()
{
    std::cout << std::boolalpha;
    constexpr auto md1{std::chrono::July/15};
    std::cout << (md1.ok()) << ' ';
    constexpr std::chrono::month_day md2{std::chrono::month(14), std::chrono::day(42)};
    std::cout << (md2.ok()) << ' ';
    constexpr auto md3{std::chrono::February/29};
    std::cout << (md3.ok()) << '\n';
}

Вывод:

true false true