std::chrono::year_month_day

From cppreference.com
< cpp‎ | chrono
 
 
Utilities library
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)   
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Elementary string conversions
(C++17)
(C++17)
 
Date and time utilities
Time point
(C++11)
(C++20)
Duration
(C++11)
Clocks
(C++11)      
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
Time of day
(C++20)(C++20)
(C++20)(C++20)
(C++20)

Calendars
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
year_month_day
(C++20)
(C++20)
(C++20)(C++20)
Time zones
(C++20)
(C++20)
(C++20)
chrono I/O
(C++20)
C-style date and time
 
 
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.

Member functions

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

Nonmember functions

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

Helper classes

specialization of std::formatter that formats a year_month_day according to the provided format
(class template specialization)

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

Possible output:

Current Year: 2021, Month: 9, Day: 5