Udostępnij za pośrednictwem


Klasa year_month_day

Reprezentuje miesiąc, rok i dzień.

Składnia

class year_month_day; // C++20

Elementy członkowskie

Nazwa/nazwisko opis
Konstruktory Konstruowanie year_month_day
day Zwraca dzień.
month Zwraca miesiąc.
ok Sprawdź, czy year wartości i month znajdują się w prawidłowym zakresie.
operator+= Dodaj określoną liczbę miesięcy lub lat.
operator-= Odejmij określoną liczbę miesięcy lub lat.
operator local_days Pobierz liczbę dni z system_clock epoki do tej year_month_day wartości jako local_days.
operator sys_days Pobierz liczbę dni z system_clock epoki do tej year_month_day wartości jako sys_days.
year Zwraca rok.

Inne niż elementy członkowskie

Nazwa/nazwisko opis
from_stream Analizowanie strumienia year_month_day przy użyciu określonego formatu
operator+ Dodaj miesiące lub lata.
operator- Odejmowanie miesięcy lub lat.
operator== Ustal, czy dwie year_month_day wartości są równe.
operator<=> Porównaj dwie year_month_day wartości. Operatory >, >=, <=, <, != są syntetyzowane przez kompilator.
operator<< year_month_day Wyprowadzanie elementu do strumienia.

Wymagania

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

Przestrzeń nazw: std::chrono

Opcja kompilatora: /std:c++latest

Konstruktory

Skonstruuj element year_month_day.

1) year_month_day() = default;
2) constexpr year_month_day(const year& y, const month& m, day& d) noexcept;
3) constexpr year_month_day(const year_month_day_last& ymdl) noexcept;
4) constexpr year_month_day(const sys_days& dp) noexcept;
5) constexpr explicit year_month_day(const local_days& dp) noexcept;

Parametry

dday Wartość.

dp Wartość sys_days lub local_days .

mmonth Wartość.

y
year Wartość.

ymdlyear_month_day_last Wartość.

Uwagi

1) Domyślny konstruktor nie inicjuje miesiąca ani dnia.
2) Tworzy obiekt year_month_day z określonym rokiem, miesiącem i dniem.
3) Tworzy obiekt year_month_day z określonym rokiem, miesiącem i dniem od ymdl
4) Tworzy element year_month_day o tej samej dacie co dp.
5) Konstruuje element year_month_day o tej samej dacie, dp ale tak, jakby został skonstruowany przez year_month_day(sys_days(dp.time_since_epoch()))element .

Aby uzyskać informacje o składni języka C++20 używanej do określania dat, zobacz operator/

Przykład: tworzenie elementu year_month_day

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

using namespace std::chrono;

int main()
{
    year_month_day ymd{ April / 4 / 1975 };
    std::cout << ymd;
    return 0;
}
1975-04-04

day

Pobierz dzień.

constexpr day day() const noexcept;

Wartość zwracana

Wartość wyliczenia day.

month

Pobierz miesiąc.

constexpr month month() const noexcept;

Wartość zwracana

Wartość wyliczenia month.

operator local_days

Pobierz liczbę dni od system_clock epoki (1/1/1970) do tej year_month_day wartości jako local_days

constexpr explicit operator local_days() const noexcept;

Wartość zwracana

Jeśli ok()funkcja zwraca liczbę dni jako local_days{sys_days{*this}.time_since_epoch()}

operator sys_days

Pobierz liczbę dni z system_clock epoki (1.1.1.1.1970) do tej year_month_day wartości jako sys_days.

constexpr operator sys_days() const noexcept;

Wartość zwracana

Jeśli ok()wartość , zwraca sys_days liczbę dni z sys_days epoki (1/1/1/1970) do daty przechowywanej w tym year_month_day. Wartość będzie ujemna, jeśli data w tej year_month_day dacie przypada przed epoką sys_days .

Jeśli rok i miesiąc w tym year_month_dayok(), zwraca wartość sys_days{year/month/1d} + (day-1d). W przeciwnym razie zwracana wartość jest nieokreślona.

Element sys_days w zakresie [days{-12687428}, days{11248737}] można przekonwertować na element year_month_day i z powrotem i mieć tę samą wartość.

year

Pobierz rok.

constexpr year year() const noexcept;

Wartość zwracana

year.

ok

Sprawdź, czy wartość roku i miesiąca przechowywane w tym year_month_day zakresie znajdują się w prawidłowym zakresie. Gwarantuje, że dzień znajduje się w zakresie [1d, (y/m/last).day()], uwzględniając lata przestępne i inną liczbę dni w każdym miesiącu.

constexpr bool ok() const noexcept;

Wartość zwracana

trueyear_month_day jeśli wartości roku, miesiąca i dnia znajdują się w prawidłowym zakresie. W przeciwnym razie wartość false.

operator+=

Dodaj miesiące lub lata do tego year_month_dayelementu .

1) constexpr year_month_day& operator+=(const months& dm) noexcept;
2) constexpr year_month_day& operator+=(const years& dy) noexcept;

Parametry

dm
Liczba miesięcy do dodania.

dy
Liczba lat do dodania.

Wartość zwracana

*this, który odzwierciedla wynik dodawania.

Przykład: operator+=

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

using namespace std::chrono;

int main()
{
    year_month_day ymd{June / 1d / 2021y};

    std::cout << ymd << '\n';

    ymd += months{2};
    ymd += years{1};

    std::cout << ymd;
    
    return 0;
}
2021-06-01
2022-08-01

operator-=

Odejmij miesiące lub lata od tego year_month_day.

1) constexpr year_month_day& operator-=(const months& dm) noexcept;
2) constexpr year_month_day& operator-=(const years& dy) noexcept;

Parametry

dm
Liczba miesięcy do odejmowania.

dy
Liczba lat do odejmowania.

Wartość zwracana

*this, który odzwierciedla wynik odejmowania.

Przykład: operator-=

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

using namespace std::chrono;

int main()
{
    year_month_day ymd{June / 1d / 2021y};

    std::cout << ymd << '\n';

    ymd -= months{2};
    ymd -= years{1};

    std::cout << ymd;
    
    return 0;
}
2021-06-01
2020-04-01

Zobacz też

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