Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

NAME
       std::chrono::year_month_day_last	- std::chrono::year_month_day_last

Synopsis
	  Defined in header <chrono>
	  class	year_month_day_last;  (since C++20)

	  The  class year_month_day_last represents the	last day of a specific
       year and	month.
	  It  is  a   field-based   time   point,   with   a   resolution   of
       std::chrono::days, subject to
	  the limit that it can	only represent the last	day of a month.

	  std::chrono::years-  and std::chrono::months-oriented	arithmetic are
       supported
	  directly. An implicit	conversion to std::chrono::sys_days allows
	  std::chrono::days-oriented arithmetic	to be performed	efficiently.

	  year_month_day_last is a TriviallyCopyable StandardLayoutType.

Member functions
	  constructor	      constructs a year_month_day_last object
			      (public member function)
	  operator+=	      modifies the time	point by some number of	months
       or years
	  operator-=	      (public member function)
	  year
	  month		      accesses the fields of this object
	  day		      (public member function)
	  month_day_last
	  operator sys_days   converts to a std::chrono::time_point
	  operator local_days (public member function)
	  ok		      checks whether this object  represents  a	 valid
       date
			      (public member function)

	 Nonmember functions

	  operator==  compares two year_month_day_last values
	  operator<=> (function)
	  (C++20)
	  operator+    adds or subtracts a year_month_day_last and some	number
       of years	or
	  operator-   months
	  (C++20)     (function)
	  operator<<  outputs a	year_month_day_last into a stream
	  (C++20)     (function	template)

Helper classes
							   specialization   of
       std::formatter
	  std::formatter<std::chrono::year_month_day_last>   that   formats  a
       year_month_day_last
	  (C++20)					    according  to  the
       provided	format
							   (class     template
       specialization)

Example
       // Run this code

	#include <iostream>
	#include <chrono>

	// until online	compiler supports streaming the	year_month_day_last:
	std::ostream&	       operator<<	   (std::ostream&	   os,
       std::chrono::year_month_day_last	ymdl) {
	    return os << static_cast<int>(ymdl.year()) << '/'
		      << static_cast<unsigned>(ymdl.month()) <<	'/'
		      << static_cast<unsigned>(ymdl.day());
	}

	int main()
	{
	    const auto ymd = std::chrono::year_month_day{
		std::chrono::floor<std::chrono::days>(
		    std::chrono::system_clock::now()
		)
	    };

	    const std::chrono::year_month_day_last ymdl{
		ymd.year(), ymd.month()	/ std::chrono::last
	    };
	    std::cout << "The date of the last day of this month is: " << ymdl
       << '\n';

	    // The `last` object can be	places wherever	it is legal to place a
       `day`:
	    using namespace std::chrono;
	    constexpr std::chrono::year_month_day_last
		ymdl1 =	2023y /	February / last,
		ymdl2 =	last / February	/ 2023y,
		ymdl3 =	February / last	/ 2023y;
	    static_assert( ymdl1 == ymdl2 and ymdl2 == ymdl3 );
	}

Possible output:
	The date of the	last day of this month is: 2021/11/30

See also
	  year_month_day represents a specific year, month, and	day
	  (C++20)	 (class)

http://cppreference.com		  2022.07.31	  std::chrono...th_day_last(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::chrono::year_month_day_last&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help