Udostępnij za pośrednictwem


Klasa month

Reprezentuje miesiąc roku. Na przykład lipiec.

Składnia

class month; // C++20

Uwagi

Zwykle month wartości są przechowywane w zakresie [1, 12]. Może również przechowywać wartości inne niż ujemne poza tym zakresem. Zobacz Stałe miesiąc poniżej, aby uzyskać stałe, których można używać z klasą month .

Elementy członkowskie

Nazwa/nazwisko opis
Konstruktory Skonstruuj element month.
ok Sprawdź, czy wartość miesiąca znajduje się w prawidłowym zakresie [1,12].
operator++ Zwiększ wartość month.
operator+= Dodaj określoną liczbę miesięcy do tego monthelementu .
operator-- Zdekrementuj ten plik month.
operator-= Odejmij określoną liczbę miesięcy od tego month.
operator unsigned month Pobierz wartość.

Inne niż elementy członkowskie

Nazwa/nazwisko opis
from_stream Przeanalizuj element month z danego strumienia przy użyciu określonego formatu.
operator+ Dodaj określoną liczbę miesięcy do tego monthobiektu , zwracając nowe month wystąpienie.
operator- Odejmij określoną liczbę miesięcy od tego miesiąca. Zwraca nowe month wystąpienie.
operator== Ustal, czy dwa miesiące są równe.
operator<=> Porównaj ten miesiąc z innym miesiącem. Operatory >, >=, <=, <, != są syntetyzowane przez kompilator.
operator<< month Wyprowadź element do danego strumienia.

Wymagania

Nagłówek: <chrono> (od C++20)

Przestrzeń nazw: std::chrono

Opcja kompilatora: /std:c++latest

Konstruktory

Skonstruuj element month.

1) month() = default;
2) explicit constexpr month(unsigned m) noexcept;

Parametry

m
Skonstruuj element month o wartości m.

Uwagi

1) Domyślny konstruktor nie inicjuje wartości dnia.
2) Skonstruuj wartość z wartością month dnia zainicjowaną na .m

ok

Sprawdź, czy wartość przechowywana w tym month zakresie znajduje się w prawidłowym zakresie.

constexpr bool ok() const noexcept;

Wartość zwracana

true jeśli wartość miesiąca znajduje się w zakresie [1,12]. W przeciwnym razie wartość false.

operator++

Zwiększ wartość miesiąca.

1) constexpr month& operator++() noexcept;
2) constexpr month operator++(int) noexcept;

Wartość zwracana

1) Odwołanie do *this miesiąca po jego przyrostku (przyrostek).
2) Kopia elementu month, przed jej przyrostem (przyrostem prefiksu).

Przykład: operator++

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

using namespace std::chrono;

int main()
{
    month m{ January };
    month m2{4}; // April

    std::cout << m << " " << ++m << "\n"; // constexpr month& operator++() noexcept
    std::cout << m << " " << m++ << "\n"; // constexpr month operator++(int) noexcept
    std::cout << m << "\n";
    std::cout << m2 << "\n";

    return 0;
}
Jan Feb
Feb Feb
Mar
Apr

Uwagi

Jeśli wynik przekracza 12, jest ustawiony na 1.

operator--

Odejmij 1 od wartości miesiąca.

1) constexpr month& operator--() noexcept;
2) constexpr month operator--(int) noexcept;

Wartość zwracana

1) Odwołanie do *this month po jego dekrementacji (dekrementacja postfiksu).
2) Kopia month przed jej dekrementacji (dekrementacja prefiksu).

Przykład: operator--

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

using namespace std;
using namespace std::chrono;

int main()
{
    month m{May};

    cout << m << " " << --m << "\n"; // constexpr month& operator++() noexcept
    cout << m << " " << m-- << "\n"; // constexpr month operator++(int) noexcept
    cout << m << "\n";

    return 0;
}
May Apr
Apr Apr
Mar

Uwagi

Jeśli zdekrementowany wynik jest mniejszy niż 1, jest ustawiony na 12.

operator+=

Dodaj miesiące do tego monthelementu .

constexpr month& operator+=(const months& m) noexcept;

Parametry

m
Liczba miesięcy do dodania.

Wartość zwracana

*this

operator-=

Odejmij months z tego monthelementu .

constexpr month& operator-=(const months& m) noexcept;

Parametry

m
Miesiące do odejmowania.

Wartość zwracana

*this.

operator unsigned

Pobierz niepodpisaną month wartość.

explicit constexpr operator unsigned() const noexcept;

Wartość zwracana

Niepodpisane wartości tego elementu month

Przykład: operator unsigned()

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

using namespace std::chrono;

int main()
{
    month m{July};
    unsigned monthValue = static_cast<unsigned>(m);
    std::cout << monthValue << "\n";

    return 0;
}
7

Stałe miesiąca

(C++20) Nagłówek <chrono> definiuje następujące stałe, których można używać z month większą wygodą, bezpieczeństwem typu i konserwacyjnością kodu. Te stałe znajdują się w zakresie, gdy std::chrono znajduje się w zakresie.

// Calendrical constants
inline constexpr month January{1};
inline constexpr month February{2};
inline constexpr month March{3};
inline constexpr month April{4};
inline constexpr month May{5};
inline constexpr month June{6};
inline constexpr month July{7};
inline constexpr month August{8};
inline constexpr month September{9};
inline constexpr month October{10};
inline constexpr month November{11};
inline constexpr month December{12};

Zobacz też

<chrono>
month_day Klasa
month_day_last Klasa
month_weekday Klasa
Klasa month_weekday_last