Udostępnij za pośrednictwem


Klasa year

Reprezentuje rok w kalendarzu gregoriańskim.

Składnia

class year; // C++20

Uwagi

Wartość year roku może zawierać od -32767 do 32767.

Członkowie

Nazwa/nazwisko opis
Konstruktory Konstruowanie year
is_leap Ustal, czy rok jest rokiem przestępnym.
max Zwraca największą możliwą wartość roku.
min Zwraca najmniejszą możliwą wartość roku.
ok Sprawdź, czy wartość roku znajduje się w prawidłowym zakresie [-32767, 32767].
operator+ Jednoargumentowy plus.
operator++ Zwiększa rok.
operator+= Dodaj określoną liczbę lat do tego yearelementu .
operator- Jednoargumentowy minus.
operator-- Dekrementacja roku.
operator-= Odejmij określoną liczbę lat od tego year.
operator int year Pobierz wartość.

Inne niż elementy członkowskie

Nazwa/nazwisko opis
from_stream Analizowanie strumienia year przy użyciu określonego formatu
operator+ Dodaj lata.
operator- Odejmowanie lat.
operator== Ustal, czy dwa lata są równe.
operator<=> Porównaj to year z innym elementem year. Operatory >, >=, <=, <, != są syntetyzowane przez kompilator.
operator<< year Wyprowadź element do danego strumienia.
operator""y Utwórz literał year .

Wymagania

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

Obszaru nazw:std::chrono

Opcja kompilatora:/std:c++latest

Konstruktory

Skonstruuj element year.

1) year() = default;
2) explicit constexpr year(unsigned y) noexcept;

Parametry

y
Skonstruuj element year o wartości y.

Uwagi

1) Domyślny konstruktor nie inicjuje year wartości.
2) Konstruowanie elementu year z określoną wartością.

Przykład: tworzenie elementu year

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

using namespace std::chrono;

int main()
{
    year y{2020};
    year y2 = 2021y;
    
    std::cout << y << ", " << y2;

    return 0;
}
2020, 2021

is_leap

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

constexpr bool is_leap() const noexcept;

Wartość zwracana

true jeśli wartość roku jest rokiem przestępnym. W przeciwnym razie wartość false. Rok przestępny jest dzielny przez 4, ale nie 100-- lub jest podzielny przez 400.

max

Zwraca największy możliwy rok.

static constexpr year max() noexcept;

Wartość zwracana

year{32767}

min

Zwraca najmniejszy możliwy rok.

static constexpr year min() noexcept;

Wartość zwracana

year{-32767}

ok

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

constexpr bool ok() const noexcept;

Wartość zwracana

true jeśli wartość roku znajduje się w zakresie [-32676, 32767]. W przeciwnym razie wartość false.

operator+

Zastosuj jednoargumentowy plus.

constexpr year operator+() const noexcept;

Wartość zwracana

Zwraca *this

Przykład: jednoargumentowy operator+

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

using namespace std::chrono;

int main()
{
   year y{-1};
   std::cout << +y;
   return 0;
}
-0001

operator++

Dodaj wartość 1 do wartości roku.

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

Wartość zwracana

1) Zwraca odwołanie do tego roku po jego przyrostku (przyrostek).
2) Zwraca kopię yearelementu , zanim został on przyrostowy (przyrostowy prefiks).

Przykład: operator++

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

using namespace std::chrono;

int main()
{
    year y{2021};

    std::cout << y << " " << ++y << "\n"; // constexpr year& operator++() noexcept
    std::cout << y << " " << y++ << "\n"; // constexpr year operator++(int) noexcept
    std::cout << y << "\n";
    return 0;
}
2021 2022
2022 2022
2023

Uwagi

Jeśli przyrostowy wynik przekroczy 32767, przepełni się do -32768

operator-

Jednoargumentowy minus. Neguj element year.

constexpr year operator-() const noexcept; // C++20

Wartość zwracana

Zwraca negowaną kopię elementu year.

Przykład: jednoargumentowy operator-

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

using namespace std::chrono;

int main()
{
   year y{1977};
   std::cout << -y << '\n';

   return 0;
}
-1977

operator--

Odejmij 1 od wartości roku.

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

Wartość zwracana

1) Odwołanie do tego yearpo jego dekrementacji (dekrementacja postfiksu).
2) Kopia yearprzed jej dekrementacji (dekrementacja prefiksu).

Przykład: operator--

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

using namespace std::chrono;

int main()
{
   year y{2021};

    std::cout << y << " " << --y << "\n"; // constexpr year& operator++() noexcept
    std::cout << y << " " << y-- << "\n"; // constexpr year operator++(int) noexcept
    std::cout << y << "\n";

    return 0;
}
2021 2020
2020 2020
2019

Uwagi

Jeśli dekrementowany wynik jest mniejszy niż -32768, jest ustawiony na 32767.

operator+=

Dodaj dni do tego yearelementu .

constexpr year& operator+=(const years& y) noexcept;

Parametry

y
Liczba lat do dodania.

Wartość zwracana

*this Jeśli przyrostowy wynik przekroczy 32767, przepełni się do -32768.

operator-=

Odejmij dni od tego year.

constexpr year& operator-=(const years& y) noexcept;

Parametry

y
Liczba lat do odejmowania.

Wartość zwracana

*this. Jeśli dekrementowany wynik jest mniejszy niż -32768, jest ustawiony na 32767.

operator int

year Pobierz wartość.

explicit constexpr operator int() const noexcept;

Wartość zwracana

Wartość elementu year

Przykład: operator int()

// compile using: /std:c++latest

 #include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    year y{2020};
    int yearValue = static_cast<int>(y);
    std::cout << yearValue;

    return 0;
}
2020

Zobacz też

<chrono>
year_month
year_month_day
year_month_day_last
year_month_weekday
year_month_weekday_last
Odwołanie do plików nagłówka