Klasa year_month_weekday
Reprezentuje określony rok, miesiąc i nth dzień tygodnia miesiąca.
Składnia
class year_month_weekday; // C++20
Uwagi
year_month_weekday
obsługuje arytmetyka zorientowana na lata i miesiące, ale nie arytmetyka zorientowana na dni. W przypadku arytmetyki zorientowanej na dni użyj sys_days
konwersji w celu przekonwertowania na sys_days
element , który obsługuje arytmetyczną zorientowaną na dni.
year_month_weekday
jest trywialnie kopiowalnym i standardowym typem klasy układu.
Elementy członkowskie
Nazwa/nazwisko | opis |
---|---|
Constructor |
Skonstruuj element year_month_weekday z określonym miesiącem i dniem tygodnia. |
index |
Pobierz indeks dnia tygodnia. |
month |
Pobierz wartość miesiąca. |
ok |
Sprawdź, czy year_month_weekday element jest prawidłowy. |
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_weekday wartości jako local_days . |
operator sys_days |
Pobierz liczbę dni z system_clock epoki do tej year_month_weekday wartości jako sys_days . |
weekday |
Pobierz dzień powszedni. |
weekday_indexed |
Pobierz element [weekday_indexed ] przechowywany w tym year_month_weekday pliku . |
year |
Pobierz rok. |
Inne niż elementy członkowskie
Nazwa/nazwisko | opis |
---|---|
operator+ |
Dodaj miesiące lub lata. |
operator- |
Odejmowanie miesięcy lub lat. |
operator== |
Ustal, czy dwie year_month_weekday wartości są równe. |
operator<< |
year_month_weekday Wyprowadź element do danego strumienia. |
Wymagania
Nagłówek: <chrono>
(od C++20)
Przestrzeń nazw: std::chrono
Opcja kompilatora: /std:c++latest
Konstruktor
Tworzy element year_month_weekday
.
// 1)
year_month_weekday() = default
// 2)
constexpr year_month_weekday(const year& y, const month& m, const weekday_indexed& wdi) noexcept;
// 3)
constexpr explicit year_month_weekday(const local_days& dp) noexcept;
// 4)
constexpr year_month_weekday(const sys_days& dp) noexcept;
Parametry
m
Wartość wyliczenia month
.
dp
A sys_days
lub local_days
wdi
Wartość wyliczenia weekday
.
y
Wartość wyliczenia year
.
Uwagi: Konstruktor
1) Domyślny konstruktor nie inicjuje żadnego z pól.
2) Konstruuje obiekt year_month_weekday
odpowiadający określonej wartości year
, month
i weekday_indexed
.
3) Tworzy element year_month_weekday
odpowiadający dacie reprezentowanej przez sys_days{dp.time_since_epoch()}
element .
4) Tworzy element year_month_weekday
odpowiadający dacie reprezentowanej przez dp
element . Dla dowolnego year_month_weekday
(ymdl), dla którego ok()
parametr to true
, porównanie z wartością operator==
year_month_weekday{sys_days{ymdl}}
będzie .true
Aby uzyskać informacje o składni języka C++20 używanej do określania dat, zobacz operator/
Przykład: tworzenie elementu year_month_weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
index
Pobierz indeks tygodnia dnia tygodnia w tym year_month_weekday
pliku .
constexpr unsigned index() const noexcept;
Wartość zwracana
Indeks dnia tygodnia. Jeśli na przykład dzień tygodnia był pierwszą środą tygodnia, indeks będzie wynosił 1.
month
Pobierz wartość miesiąca.
constexpr month month() const noexcept;
Wartość zwracana
Wartość wyliczenia month
.
ok
Sprawdź, czy wartość przechowywana w tym year_month_weekday
miejscu jest prawidłowa. Element year
, month
i weekday_index
przechowywany w tym year_month_weekday
pliku musi być ok
przeznaczony dla tej funkcji, aby zwracała wartość true
. W przeciwnym razie zwraca wartość false
.
constexpr bool ok() const noexcept;
Wartość zwracana
true
jeśli wartość jest prawidłowa year_month_weekday
. W przeciwnym razie wartość false
.
Wartość jest year_month_weekday
prawidłowa, jeśli wartość month
jest prawidłowa, a wartość jest prawidłowa weekday_indexed
.
operator+=
Dodaj miesiące lub lata do tego year_month_weekday
elementu .
1) constexpr year_month_weekday& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday& operator+=(const years& y) noexcept;
Parametry
m
Liczba miesięcy do dodania.
y
Liczba lat do dodania.
Wartość zwracana
*this
odzwierciedla wynik dodawania.
Przykład: operator+=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw += months{1};
ymw += years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1998/Feb/Wed[1]
operator-=
Odejmij miesiące lub lata od tego year_month_weekday
.
1) constexpr year_month_weekday& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday& operator-=(const years& y) noexcept;
Parametry
m
Liczba miesięcy do odejmowania.
y
Liczba lat do odejmowania.
Wartość zwracana
*this
odzwierciedla wynik odejmowania.
Przykład: operator-=
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
year_month_weekday ymw{1997y / January / Wednesday[1]};
std::cout << ymw << '\n';
ymw -= months{1};
ymw -= years{1};
std::cout << ymw << '\n';
return 0;
}
1997/Jan/Wed[1]
1995/Dec/Wed[1]
operator local_days
Pobierz liczbę dni od system_clock
epoki (1/1/1970) do tej year_month_weekday
wartości jako local_days
constexpr explicit operator local_days() const noexcept;
Wartość zwracana
Jeśli ok()
wartość , zwraca liczbę dni jako local_days{sys_days{*this}.time_since_epoch()}
. W przeciwnym razie zwrócona wartość jest nieokreślona.
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()
funkcja zwraca wartość sys_days
, która reprezentuje datę, która jest (index() - 1) * 7
następująca: dni po pierwszym weekday()
z year()/month()
. Jeśli index()
wartość to 0
, zwracana sys_days
wartość reprezentuje datę 7 dni przed pierwszą weekday()
wartością year()/month()
.
weekday
weekday
Pobierz plik przechowywany w pliku przechowywanym weekday_indexed
w tym year_month_weekday
pliku .
constexpr weekday weekday() const noexcept;
Wartość zwracana
Wartość wyliczenia weekday
.
weekday_indexed
Pobierz plik weekday_indexed
przechowywany w tym pliku year_month_weekday
.
constexpr weekday_indexed weekday_indexed() const noexcept;
Wartość zwracana
Wartość wyliczenia weekday_indexed
.
year
Pobierz wartość roku.
constexpr year year() const noexcept;
Wartość zwracana
Wartość wyliczenia year
.
Zobacz też
<chrono>
year
year_month
year_month_day
year_month_day_last
year_month_weekday_last
operator/
Odwołanie do plików nagłówka