home | help
std::chrono...ar_month_day(3)  C++ Standard Libary std::chrono...ar_month_day(3)

NAME
     std::chrono::year_month_day::year_month_day			       -
     std::chrono::year_month_day::year_month_day

Synopsis
	year_month_day() =  default;					     (1)
     (since C++20)
	constexpr year_month_day( const std::chrono::year& y,

				  const  std::chrono::month&  m,	     (2)
     (since C++20)

				  const std::chrono::day& d ) noexcept;
	constexpr year_month_day( const  std::chrono::year_month_day_last&   (3)
     (since C++20)
	ymdl ) noexcept;
	constexpr  year_month_day(  const std::chrono::sys_days& dp )	     (4)
     (since C++20)
	noexcept;
	constexpr explicit year_month_day( const  std::chrono::local_days&   (5)
     (since C++20)
	dp ) noexcept;

	Constructs a year_month_day object.

	1) Default constructor leaves the date uninitialized.
	2)  Constructs	a  year_month_day object that stores the year y, month m
     and day d.
	3) Constructs a year_month_day object that stores the year  ymdl.year(),
     month
	ymdl.month() and day ymdl.day().
	4)  Constructs	a  year_month_day object that represent the same date as
     the one
	represented by dp.
	5) Constructs a year_month_day object that represent the  same	date  as
     the one
	represented	     by 	 dp,	      as	  if	      by
     year_month_day(sys_days(dp.time_since_epoch())).

	Constructors	 (3,4)	   define     implicit	   conversions	    from
     std::chrono::year_month_day_last
	and std::chrono::sys_days, respectively.

	For any year_month_day object ymd representing a valid date (ymd.ok() ==
     true),
	converting ymd to sys_days and back yields the same value.

Notes
	A  year_month_day  can	also be created by combining one of the partial-
     date types
	std::chrono::year_month and std::chrono::month_day with the missing com-
     ponent (day
	and year, respectively) using operator/.

Example
     // Run this code

      #include <chrono>
      #include <iostream>

      int main()
      {
	  using namespace std::chrono;

	  constexpr auto ymd2 = std::chrono::year_month_day(
	      2020y, std::chrono::January, 31d // overload (2)
	  );
	  std::cout << "ymd2: " << ymd2 << '\n';

	  constexpr auto ymd3 = std::chrono::year_month_day(
	      std::chrono::April / std::chrono::Monday[last] / 2023y // overload
     (3)
	  );
	  std::cout << "ymd3: " << ymd3 << '\n';

	  const auto now = std::chrono::system_clock::now();
	  const auto ymd4 = std::chrono::year_month_day(
	      std::chrono::floor<std::chrono::days>(now) // overload (4)
	  );
	  std::cout << "ymd4: " << ymd4 << '\n';
      }

Possible output:
      ymd2: 2020-01-31
      ymd3: 2023-04-24
      ymd4: 2023-08-30

See also
	operator/ conventional syntax for Gregorian calendar date creation
	(C++20)   (function)

http://cppreference.com 	   2024.06.10	   std::chrono...ar_month_day(3)

home | help