Namespaces
Variants
Views
Actions

std::chrono::year_month_day

From cppreference.com
< cpp‎ | chrono
 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
 
 
 
Defined in header <chrono>
class year_month_day;
(since C++20)

The class year_month_day represents a specific year, month, and day. It is a field-based time point, with a resolution of std::chrono::days. std::chrono::years- and std::chrono::months-oriented arithmetic are supported directly. An implicit conversion to and from std::chrono::sys_days allows std::chrono::days-oriented arithmetic to be performed efficiently.

year_month_day is a TriviallyCopyable StandardLayoutType.

Contents

[edit] Member functions

constructs a year_month_day
(public member function) [edit]
modifies the time point by some number of months or years
(public member function) [edit]
accesses the year, month, and day stored in this object
(public member function) [edit]
converts to a std::chrono::time_point
(public member function) [edit]
checks if the year_month_day represents a valid date
(public member function) [edit]

[edit] Nonmember functions

compares two year_month_day values
(function) [edit]
adds or subtracts a year_month_day and some number of years or months
(function) [edit]
outputs a year_month_day into a stream
(function template) [edit]
parses a year_month_day from a stream according to the provided format
(function template) [edit]

[edit] Helper classes

formatting support for year_month_day
(class template specialization) [edit]
hash support for std::chrono::year_month_day
(class template specialization)

[edit] Example

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

Possible output:

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