Klasa year_month_day
Reprezentuje miesiąc, rok i dzień.
Składnia
class year_month_day; // C++20
Elementy członkowskie
Nazwa/nazwisko | opis |
---|---|
Konstruktory | Konstruowanie year_month_day |
day |
Zwraca dzień. |
month |
Zwraca miesiąc. |
ok |
Sprawdź, czy year wartości i month znajdują się w prawidłowym zakresie. |
operator+= |
Dodaj określoną liczbę miesięcy lub lat. |
operator-= |
Odejmij określoną liczbę miesięcy lub lat. |
operator local_days |
Pobierz liczbę dni z system_clock epoki do tej year_month_day wartości jako local_days . |
operator sys_days |
Pobierz liczbę dni z system_clock epoki do tej year_month_day wartości jako sys_days . |
year |
Zwraca rok. |
Inne niż elementy członkowskie
Nazwa/nazwisko | opis |
---|---|
from_stream |
Analizowanie strumienia year_month_day przy użyciu określonego formatu |
operator+ |
Dodaj miesiące lub lata. |
operator- |
Odejmowanie miesięcy lub lat. |
operator== |
Ustal, czy dwie year_month_day wartości są równe. |
operator<=> |
Porównaj dwie year_month_day wartości. Operatory >, >=, <=, <, != są syntetyzowane przez kompilator. |
operator<< |
year_month_day Wyprowadzanie elementu do strumienia. |
Wymagania
Nagłówek: <chrono>
(od C++20)
Przestrzeń nazw: std::chrono
Opcja kompilatora: /std:c++latest
Konstruktory
Skonstruuj element year_month_day
.
1) year_month_day() = default;
2) constexpr year_month_day(const year& y, const month& m, day& d) noexcept;
3) constexpr year_month_day(const year_month_day_last& ymdl) noexcept;
4) constexpr year_month_day(const sys_days& dp) noexcept;
5) constexpr explicit year_month_day(const local_days& dp) noexcept;
Parametry
d
day
Wartość.
dp
Wartość sys_days
lub local_days
.
m
month
Wartość.
y
year
Wartość.
ymdl
year_month_day_last
Wartość.
Uwagi
1) Domyślny konstruktor nie inicjuje miesiąca ani dnia.
2) Tworzy obiekt year_month_day
z określonym rokiem, miesiącem i dniem.
3) Tworzy obiekt year_month_day
z określonym rokiem, miesiącem i dniem od ymdl
4) Tworzy element year_month_day
o tej samej dacie co dp
.
5) Konstruuje element year_month_day
o tej samej dacie, dp
ale tak, jakby został skonstruowany przez year_month_day(sys_days(dp.time_since_epoch()))
element .
Aby uzyskać informacje o składni języka C++20 używanej do określania dat, zobacz operator/
Przykład: tworzenie elementu year_month_day
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day ymd{ April / 4 / 1975 };
std::cout << ymd;
return 0;
}
1975-04-04
day
Pobierz dzień.
constexpr day day() const noexcept;
Wartość zwracana
Wartość wyliczenia day
.
month
Pobierz miesiąc.
constexpr month month() const noexcept;
Wartość zwracana
Wartość wyliczenia month
.
operator local_days
Pobierz liczbę dni od system_clock
epoki (1/1/1970) do tej year_month_day
wartości jako local_days
constexpr explicit operator local_days() const noexcept;
Wartość zwracana
Jeśli ok()
funkcja zwraca liczbę dni jako local_days{sys_days{*this}.time_since_epoch()}
operator sys_days
Pobierz liczbę dni z system_clock
epoki (1.1.1.1.1970) do tej year_month_day
wartości jako sys_days
.
constexpr operator sys_days() const noexcept;
Wartość zwracana
Jeśli ok()
wartość , zwraca sys_days
liczbę dni z sys_days
epoki (1/1/1/1970) do daty przechowywanej w tym year_month_day
. Wartość będzie ujemna, jeśli data w tej year_month_day
dacie przypada przed epoką sys_days
.
Jeśli rok i miesiąc w tym year_month_day
są ok()
, zwraca wartość sys_days{year/month/1d} + (day-1d)
. W przeciwnym razie zwracana wartość jest nieokreślona.
Element sys_days
w zakresie [days{-12687428}
, days{11248737}
] można przekonwertować na element year_month_day
i z powrotem i mieć tę samą wartość.
year
Pobierz rok.
constexpr year year() const noexcept;
Wartość zwracana
year
.
ok
Sprawdź, czy wartość roku i miesiąca przechowywane w tym year_month_day
zakresie znajdują się w prawidłowym zakresie. Gwarantuje, że dzień znajduje się w zakresie [1d, (y/m/last).day()], uwzględniając lata przestępne i inną liczbę dni w każdym miesiącu.
constexpr bool ok() const noexcept;
Wartość zwracana
true
year_month_day
jeśli wartości roku, miesiąca i dnia znajdują się w prawidłowym zakresie. W przeciwnym razie wartość false
.
operator+=
Dodaj miesiące lub lata do tego year_month_day
elementu .
1) constexpr year_month_day& operator+=(const months& dm) noexcept;
2) constexpr year_month_day& operator+=(const years& dy) noexcept;
Parametry
dm
Liczba miesięcy do dodania.
dy
Liczba lat do dodania.
Wartość zwracana
*this
, który odzwierciedla wynik dodawania.
Przykład: operator+=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day ymd{June / 1d / 2021y};
std::cout << ymd << '\n';
ymd += months{2};
ymd += years{1};
std::cout << ymd;
return 0;
}
2021-06-01
2022-08-01
operator-=
Odejmij miesiące lub lata od tego year_month_day
.
1) constexpr year_month_day& operator-=(const months& dm) noexcept;
2) constexpr year_month_day& operator-=(const years& dy) noexcept;
Parametry
dm
Liczba miesięcy do odejmowania.
dy
Liczba lat do odejmowania.
Wartość zwracana
*this
, który odzwierciedla wynik odejmowania.
Przykład: operator-=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_day ymd{June / 1d / 2021y};
std::cout << ymd << '\n';
ymd -= months{2};
ymd -= years{1};
std::cout << ymd;
return 0;
}
2021-06-01
2020-04-01
Zobacz też
<chrono>
year
year_month
year_month_day_last
year_month_weekday
year_month_weekday_last
operator/
Odwołanie do plików nagłówka