Namespaces
Variants

std::chrono:: year_month_day

From cppreference.net
ヘッダーで定義 <chrono>
class year_month_day ;
(C++20以降)

year_month_day クラスは特定の年、月、日を表現します。これはフィールドベースの時間点であり、分解能は std::chrono::days です。 std::chrono::years および std::chrono::months を対象とした演算が直接サポートされています。 std::chrono::sys_days との間の暗黙変換により、 std::chrono::days を対象とした演算を効率的に実行できます。

year_month_day TriviallyCopyable StandardLayoutType です。

目次

メンバー関数

year_month_day を構築する
(public member function)
月数または年数分だけ時間点を変更する
(public member function)
このオブジェクトに格納されている年、月、日にアクセスする
(public member function)
std::chrono::time_point に変換する
(public member function)
year_month_day が有効な日付を表しているかチェックする
(public member function)

非メンバー関数

2つの year_month_day 値を比較する
(関数)
year_month_day と年数または月数の加算・減算を行う
(関数)
(C++20)
year_month_day をストリームに出力する
(関数テンプレート)
指定されたフォーマットに従ってストリームから year_month_day を解析する
(関数テンプレート)

ヘルパークラス

year_month_day のフォーマットサポート
(クラステンプレートの特殊化)
std::chrono::year_month_day のハッシュサポート
(クラステンプレートの特殊化)

#include <chrono>
#include <iostream>
int main()
{
    const std::chrono::time_point now{std::chrono::system_clock::now()};
    const std::chrono::year_month_day ymd{std::chrono::floor<std::chrono::days>(now)};
    std::cout << "Current Year: " << static_cast<int>(ymd.year()) << ", "
                 "Month: " << static_cast<unsigned>(ymd.month()) << ", "
                 "Day: " << static_cast<unsigned>(ymd.day()) << "\n"
                 "ymd: " << ymd << '\n';
}

出力例:

Current Year: 2023, Month: 9, Day: 4
ymd: 2023-09-04