Sdílet prostřednictvím


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 dayzadaný 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 dayobjektu , 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 *daypř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 daydny .

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 daydne 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