std::chrono...th_day_last(3)
okay bestie, welcome to the std::chrono...th_day_last(3) page from the C++ Standard Libary manual β¨ this one is all about the very last day of a month, and itβs lowkey iconic π
π NAME π
std::chrono::year_month_day_last β std::chrono::year_month_day_last. Thatβs the name, bestie, no cap π
πΈ 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βs 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. Slay π
lowkey important vibe check: it can only represent the last day of a month. Thatβs its whole main-character thing π
π οΈ Member functions π οΈ
constructorβ constructs ayear_month_day_lastobject (public member function)operator+=β modifies the time point by some number of months or years (public member function)operator-=β (public member function), listed as the minus-equals companion tooperator+=year,monthβ accesses the fields of this objectdayβ accesses the fields of this object (public member function)month_day_lastβ accesses the fields of this objectoperator sys_daysβ converts to astd::chrono::time_pointoperator local_daysβ the local-days conversion operator (public member function)okβ checks whether this object represents a valid date (public member function)
π¦ Nonmember functions π¦
operator==β compares twoyear_month_day_lastvaluesoperator<=>β the spaceship comparison, marked(C++20)(function)operator+/operator-β adds or subtracts ayear_month_day_lastand some number of years or months, marked(C++20)(function)operator<<β outputs ayear_month_day_lastinto a stream, marked(C++20)(function template)
π Helper classes π
std::formatter<std::chrono::year_month_day_last>β formatting support foryear_month_day_last, marked(C++20)(class template specialization)std::hash<std::chrono::year_month_day_last>β hash support forstd::chrono::year_month_day_last, marked(C++26)(class template specialization)
π» Example π»
// Run this code
#include <chrono>
#include <iostream>
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 last day of present month (" << ymdl << ") is: "
<< std::chrono::year_month_day{ymdl}.day() << '\n';
// The 'last' object can be placed 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 && ymdl2 == ymdl3);
}
π Possible output: π
The last day of present month (2023/Aug/last) is: 31
π See also π
year_month_dayβ represents a specific year, month, and day, marked(C++20)(class)
okay thatβs the whole std::chrono...th_day_last(3) manual page, bestie! Source: http://cppreference.com, version date: 2024.06.10. Go slay your last-day-of-month era π
β¨π«Ά
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms