Sdílet prostřednictvím


Třída year_month_weekday_last

Konkrétní rok, měsíc a poslední den v týdnu v měsíci.

Syntaxe

class year_month_weekday_last; // C++20

Poznámky

year_month_weekday_last podporuje aritmetické roky a měsíce, ale ne dny orientované aritmetické. U aritmetik orientovaných na dny použijte sys_days převod na sys_days, který podporuje aritmetické dny orientované na dny.

year_month_weekday_last je triviálně kopírovatelný a standardní typ třídy rozložení.

Členové

Název Popis
Constructor Vytvořte s year_month_weekday_last určeným měsícem a dnem v týdnu.
month Získá hodnotu měsíce.
ok Zkontrolujte, jestli je platná year_month_weekday_last .
operator+= Přidejte zadaný počet měsíců nebo roků.
operator-= Odečtěte zadaný počet měsíců nebo roků.
operator local_days Získejte počet dní od epochy system_clock do této year_month_weekday_last doby jako local_days.
operator sys_days Získejte počet dní od epochy system_clock do této year_month_weekday_last doby jako sys_days.
weekday Chytni den v týdnu.
weekday_last Získejte uloženou weekday_last v tomto year_month_weekday_lastsouboru .
year Získejte rok.

Nečlenové

Název Popis
operator+ Přidejte měsíce nebo roky.
operator- Odečítá měsíce nebo roky.
operator== Určete, zda jsou dvě year_month_weekday_last hodnoty stejné.
operator<< year_month_weekday_last Vypíše do daného datového proudu.

Požadavky

Hlavička: <chrono> (od C++20)

Obor názvů: std::chrono

Možnost kompilátoru: /std:c++latest

Konstruktor

Vytvoří .year_month_weekday_last

constexpr year_month_weekday_last(const year& y, const month& m, const weekday_last& wdl) noexcept

Parametry

m
Hodnota month.

wdl
Hodnota weekday_last.

y
Hodnota year.

Informace o syntaxi jazyka C++20 použité k určení kalendářních dat najdete v tématu operator/

Příklad: Vytvoření year_month_weekday_last

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_weekday_last ymwl{ 1997y / January / Wednesday[last] };
    std::cout << ymwl << '\n';
    
    return 0;
}
1997/Jan/Wed[last]

month

Získá hodnotu měsíce.

constexpr month month() const noexcept;

Vrácená hodnota

Hodnota month.

ok

Zkontrolujte, jestli je hodnota uložená v této year_month_weekday_last hodnotě platná. , yeara uložené v tomto year_month_weekday_last musí být ok všechny pro tuto funkci vrátit true.weekday_last month V opačném případě vrátí hodnotu false.

constexpr bool ok() const noexcept;

Vrácená hodnota

trueyear_month_weekday_last pokud je hodnota platná. V opačném případě hodnota false.
Hodnota A year_month_weekday_last je platná, pokud weekday_indexedmonthyear jsou všechny platné.

operator+=

Přidejte k tomu year_month_weekday_lastměsíce nebo roky .

1) constexpr year_month_weekday_last& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday_last& operator+=(const years& y) noexcept;

Parametry

m
Počet měsíců, které se mají sčítat.

y
Počet roků, které se mají přičíst.

Vrácená hodnota

*this který odráží výsledek sčítání.

Příklad: operator+=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_weekday_last ymwl{ year(1997) / January / Wednesday[last] };
    std::cout << ymwl << '\n';

    ymwl += months{ 1 };
    ymwl += years{ 1 };

    std::cout << ymwl << '\n';
    
    return 0;
}
1997/Jan/Wed[last]
1998/Feb/Wed[last]

operator-=

Odečítá měsíce nebo roky od tohoto year_month_weekday_last.

1) constexpr year_month_weekday_last& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday_last& operator-=(const years& y) noexcept;

Parametry

m
Počet měsíců, které se mají odečíst.

y
Počet roků, které se mají odečíst.

Vrácená hodnota

*this který odráží výsledek odčítání.

Příklad: operator-=

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year_month_weekday_last ymwl{ year(1997) / January / Wednesday[last] };
    std::cout << ymwl << '\n';

    ymwl -= months{ 1 };
    ymwl -= years{ 1 };

    std::cout << ymwl << '\n';
    
    return 0;
}
1997/Jan/Wed[last]
1995/Dec/Wed[last]

operator local_days

Získejte počet dnů od system_clock epochy (1. 1. 1970) jako year_month_weekday_lastlocal_days

constexpr explicit operator local_days() const noexcept;

Vrácená hodnota

Pokud ok()vrátí počet dnů jako local_days{sys_days{*this}.time_since_epoch()}. V opačném případě není zadaná vrácená hodnota.

operator sys_days

Získejte počet dnů od system_clock epochy (1.1.1970) do tohoto typu year_month_day sys_days.

constexpr operator sys_days() const noexcept;

Vrácená hodnota

Pokud ok() == truevrátí hodnotu sys_days , která představuje poslední weekday() z year() / month() (poznámka: / je operátor kalendářního data, nikoli dělení). V opačném případě není zadaná vrácená hodnota.

weekday

Získat .weekday

constexpr weekday weekday() const noexcept;

Vrácená hodnota

weekday.

weekday_last

Získejte uloženou weekday_last v tomto year_month_weekday_lastsouboru .

constexpr weekday_indexed weekday_last() const noexcept;

Vrácená hodnota

weekday_last.

year

Získá hodnotu roku.

constexpr year year() const noexcept;

Vrácená hodnota

Hodnota year.

Viz také

<chrono>
year
year_month
year_month_day
year_month_day_last
year_month_weekday
operator/
Referenční informace k souborům hlaviček