Třída day
Představuje den v měsíci. Například 25. den v měsíci.
Syntaxe
class day; // C++20
Poznámky
Obvykle day
obsahuje hodnoty v rozsahu [1, 31]. Může obsahovat nezáporné hodnoty mimo tento rozsah, ale chování není zadané, pokud není v rozsahu [0, 255].
Členové
Název | Popis |
---|---|
Konstruktory | Vytvoření .day |
ok |
Ověřte, že hodnota dne je v platném rozsahu [1,31]. |
operator++ |
Navýšil to day . |
operator+= |
Přidejte k tomu day zadaný počet dní . |
operator-- |
Dekrementace day . |
operator-= |
Odečíst zadaný počet dnů od tohoto day |
operator unsigned |
Získá hodnotu dne jako celé číslo bez znaménka. |
Nečlenové
Název | Popis |
---|---|
from_stream |
Parsujte day z daného datového proudu pomocí zadaného formátu. |
operator+ |
Přidejte zadaný počet dní do tohoto day objektu , který vrací nový day objekt. |
operator- |
Odečíst zadaný počet dní od tohoto day , vrácení nového day objektu. |
operator== |
Určete, zda jsou dvě day instance stejné. |
operator<=> |
Porovnejte to day s jinou day . Operátory >, >=, <=, <, != jsou syntetizovány kompilátorem. |
operator<< |
day Vypíše do daného datového proudu. |
operator""d |
Vytvořte day literál pro den v měsíci. |
Požadavky
Hlavička: <chrono>
(od C++20)
Obor názvů: std::chrono
Možnost kompilátoru: /std:c++latest
Konstruktory
Vytvoří .day
1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;
Parametry
d
Vytvořte hodnotu day
s hodnotou d
.
Poznámky
1) Výchozí konstruktor neicializuje hodnotu dne.
2) Vytvořte day
hodnotu dne inicializované na d
.
Příklad: Vytvoření day
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
day d{1}; // day 1
day d2 = 2d; // day 2
std::cout << d << ", " << d2;
return 0;
}
01, 02
ok
Zkontrolujte, jestli je hodnota uložená v tomto day
rozsahu.
constexpr bool ok() const noexcept;
Vrácená hodnota
true
pokud je hodnota dne v rozsahu [1,31]. V opačném případě hodnota false
.
operator++
Přidejte 1 k hodnotě dne.
1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;
Vrácená hodnota
1) Odkaz na *this
day
po zvýšení (přírůstek přípony).
2) Kopie day
, před zvýšením (předpona přírůstku).
Příklad: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
day d{1};
std::cout << d << " " << ++d << "\n"; // constexpr day& operator++() noexcept
std::cout << d << " " << d++ << "\n"; // constexpr day operator++(int) noexcept
std::cout << d;
return 0;
}
01 02
02 02
03
Poznámky
Pokud je výsledek přírůstku mimo rozsah [0, 255], je uložená hodnota nezadaná.
operator--
Odečítá od hodnoty dne hodnotu 1.
1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;
Vrácená hodnota
1) Odkaz na *this
den po dekrementování (dekrementace přípony).
2) Kopie *day
před dekrementací (dekrementace předpony).
Příklad: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
int main()
{
day d{5};
std::cout << d << " " << --d << "\n"; // constexpr day& operator--() noexcept
std::cout << d << " " << d-- << "\n"; // constexpr day operator--(int) noexcept
std::cout << d << "\n";
return 0;
}
05 04
04 04
03
Poznámky
Pokud je dekrementovaný výsledek mimo rozsah [0, 255], je uložená hodnota nezadaná.
operator+=
Přidejte do tohoto dne day
dny .
constexpr day& operator+=(const days& d) noexcept;
Parametry
d
Počet dnů, které se mají přidat.
Vrácená hodnota
*this
Pokud je výsledek mimo rozsah [0, 255], je uložená hodnota nezadaná.
operator-=
Odečítá od tohoto day
dne dny .
constexpr day& operator-=(const days& d) noexcept;
Parametry
d
Počet dnů, které se mají odečíst.
Vrácená hodnota
*this
. Pokud je výsledek mimo rozsah [0, 255], je uložená hodnota nezadaná.
operator unsigned
day
Získá hodnotu.
explicit constexpr operator unsigned() const noexcept;
Vrácená hodnota
Hodnota day
Příklad: operator unsigned()
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
int main()
{
chrono::day d{14d};
unsigned dayValue = static_cast<unsigned>(d);
cout << dayValue << "\n";
return 0;
}
14
Viz také
<chrono>
Třída month_day
Třída month_day_last
year_month_day
year_month_day_last
Referenční informace k souborům hlaviček