Třída year_month_weekday
Představuje konkrétní rok, měsíc a nth weekday v měsíci.
Syntaxe
class year_month_weekday; // C++20
Poznámky
year_month_weekday
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
je triviálně kopírovatelný a standardní typ třídy rozložení.
Členové
Název | Popis |
---|---|
Constructor |
Vytvořte s year_month_weekday určeným měsícem a dnem v týdnu. |
index |
Získejte index dne v týdnu. |
month |
Získá hodnotu měsíce. |
ok |
Zkontrolujte, jestli je platná year_month_weekday . |
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 doby jako local_days . |
operator sys_days |
Získejte počet dní od epochy system_clock do této year_month_weekday doby jako sys_days . |
weekday |
Chytni den v týdnu. |
weekday_indexed |
Získejte [weekday_indexed ] uložené v tomto year_month_weekday souboru . |
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 hodnoty stejné. |
operator<< |
year_month_weekday 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
// 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
Hodnota month
.
dp
A sys_days
nebo local_days
wdi
Hodnota weekday
.
y
Hodnota year
.
Poznámky: Konstruktor
1) Výchozí konstruktor neicializuje žádná pole.
2) Vytvoří, year_month_weekday
který odpovídá zadanému year
, month
a weekday_indexed
.
3) Vytvoří year_month_weekday
, která odpovídá datu reprezentované sys_days{dp.time_since_epoch()}
.
4) Vytvoří year_month_weekday
, který odpovídá datu reprezentované dp
. Pro každý year_month_weekday
(ymdl), pro který ok()
je true
, porovnání s operator==
year_month_weekday{sys_days{ymdl}}
bude true
.
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
// 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
Získejte index týdne dne v tomto year_month_weekday
týdnu .
constexpr unsigned index() const noexcept;
Vrácená hodnota
Index dne v týdnu. Pokud by například den v týdnu byla první středa v týdnu, index by byl 1.
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
hodnotě platná. , year
a uložené v tomto year_month_weekday
musí být ok
všechny pro tuto funkci vrátit true
.weekday_index
month
V opačném případě vrátí hodnotu false
.
constexpr bool ok() const noexcept;
Vrácená hodnota
true
year_month_weekday
pokud je hodnota platná. V opačném případě hodnota false
.
Hodnota A year_month_weekday
je platná, pokud je platná month
a weekday_indexed
hodnota je platná.
operator+=
Přidejte k tomu year_month_weekday
měsíce nebo roky .
1) constexpr year_month_weekday& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday& 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 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-=
Odečítá měsíce nebo roky od tohoto 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
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 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
Získejte počet dnů od system_clock
epochy (1. 1. 1970) jako year_month_weekday
local_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()
vrátí hodnotusys_days
, která představuje datum, které je (index() - 1) * 7
dny po prvním weekday()
z .year()/month()
Pokud index()
je 0
, vrácené sys_days
představuje datum 7 dní před prvním weekday()
z .year()/month()
weekday
Získejte uloženou weekday
uloženou weekday_indexed
v tomto year_month_weekday
souboru .
constexpr weekday weekday() const noexcept;
Vrácená hodnota
Hodnota weekday
.
weekday_indexed
Získejte uloženou weekday_indexed
v tomto year_month_weekday
souboru .
constexpr weekday_indexed weekday_indexed() const noexcept;
Vrácená hodnota
Hodnota weekday_indexed
.
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_last
operator/
Referenční informace k souborům hlaviček