std::chrono::year_month_day_last
Von cppreference.com
| Definiert in Header <chrono> |
||
| class year_month_day_last; |
(seit C++20) | |
Die Klasse year_month_day_last repräsentiert den letzten Tag eines bestimmten Jahres und Monats. Es handelt sich um einen feld-basierten Zeitpunkt mit einer Auflösung von std::chrono::days, unterliegt jedoch der Einschränkung, dass er nur den letzten Tag eines Monats darstellen kann.
std::chrono::years- und std::chrono::months-orientierte Arithmetik werden direkt unterstützt. Eine implizite Konvertierung in std::chrono::sys_days ermöglicht die effiziente Durchführung von std::chrono::days-orientierter Arithmetik.
year_month_day_last ist ein TriviallyCopyable StandardLayoutType.
Inhalt |
[edit] Member functions
konstruiert ein year_month_day_last Objekt(public member function) | |
| modifiziert den Zeitpunkt um eine bestimmte Anzahl von Monaten oder Jahren (public member function) | |
| greift auf die Felder dieses Objekts zu (public member function) | |
| konvertiert zu einem std::chrono::time_point (public member function) | |
| prüft, ob dieses Objekt ein gültiges Datum darstellt (public member function) |
[edit] Nonmember functions
| (C++20) |
vergleicht zwei year_month_day_last Werte(function) |
| (C++20) |
addiert oder subtrahiert einen year_month_day_last und eine Anzahl von Jahren oder Monaten(Funktion) |
| (C++20) |
gibt ein year_month_day_last in einen Stream aus(function template) |
[edit] Helper classes
Formatierungsunterstützung für year_month_day_last(Klassentemplate-Spezialisierung) | |
| Hash-Unterstützung für std::chrono::year_month_day_last (Klassentemplate-Spezialisierung) |
[edit] Example
Führen Sie diesen Code aus
#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); }
Mögliche Ausgabe
The last day of present month (2023/Aug/last) is: 31
[edit] See also
| (C++20) |
repräsentiert ein bestimmtes year, month und day (Klasse) |