Udostępnij za pośrednictwem


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_dayselement , 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_weekdaypliku .
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, monthi 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 dpelement . 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_weekdaypliku .

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, monthi 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_weekdayelementu .

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_weekdaypliku .

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