Udostępnij za pośrednictwem


Klasa year_month_day_last

Reprezentuje ostatni dzień określonego roku i miesiąca.

year_month_day_last obsługuje arytmetyczne miesiące i arytmetyczne lata, ale nie dni arytmetyczne. Aby wykonać arytmetyczną zorientowaną na dni, przekonwertuj wartość year_month_day_last na wartość sys_days.

Składnia

class year_month_day_last; // C++20

Elementy członkowskie

Nazwa/nazwisko opis
Konstruktory Konstruowanie year_month_day_last
day Pobierz ostatni dzień miesiąca/roku.
month Pobierz miesiąc.
month_day_last Pobierz wartość month_day_last przechowywaną w tym year_month_day_lastobiekcie .
ok Sprawdź, czy year wartości i month znajdują się w prawidłowym zakresie.
operator+= Dodaj miesiące lub lata do tego year_month_day_lastelementu .
operator-= Odejmij miesiące lub lata od tego year_month_day_last.
operator local_days Pobierz liczbę dni z sys_days epoki do tej year_month_day_last wartości jako local_days.
operator sys_days Pobierz liczbę dni z sys_days epoki do tej year_month_day_last wartości jako sys_days.
year Pobierz rok.

Inne niż elementy członkowskie

Nazwa/nazwisko opis
operator+ Dodaj miesiące lub lata.
operator- Odejmowanie miesięcy lub lat.
operator== Ustal, czy dwie year_month_day_last wartości są równe.
operator<=> Porównaj dwie year_month_day_last wartości. Operatory >, >=, <=, <, != są syntetyzowane przez kompilator.
operator<< year_month_day_last Wyprowadzanie elementu do strumienia.

Wymagania

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

Przestrzeń nazw: std::chrono

Opcja kompilatora: /std:c++latest

Konstruktory

Konstruowanie elementu year_month_day_last dla określonego miesiąca i roku.

constexpr year_month_day_last(const year& y, const month_day_last& mdl) noexcept;

Parametry

mdl Wartość miesiąca z obiektu month_day_last jest przechowywana w skonstruowanym year_month_day_lastobiekcie .

y
Wartość year jest przechowywana w skonstruowanym year_month_day_lastobiekcie .

Uwagi

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_last

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

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ April / last / 1975 };
    std::cout << ymdl;

    return 0;
}
1975/Apr/last

day

Jeśli ok() wartość to true, zwraca dzień reprezentujący ostatni dzień roku, miesiąc reprezentowany przez ten year_month_day_lastelement .

constexpr day day() const noexcept;

Wartość zwracana

Jeśli ok() wartość to true, zwraca wartość reprezentującą day ostatni dzień roku i miesiąca reprezentowanego przez *thiselement . W przeciwnym razie wartość zwracana jest nieokreślona.

local_days

Pobierz miesiąc, dzień i rok w tym year_month_day_last miejscu jako liczbę dni.

constexpr explicit operator local_days() const noexcept;

Wartość zwracana

local_days{sys_days{*this}.time_since_epoch()}

Przykład

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

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ June / last / 2021 };
    auto ld = local_days(ymdl);
    std::cout << ld.time_since_epoch();

    return 0;
}
18808d

month

Pobierz przechowywaną wartość miesiąca.

constexpr month month() const noexcept;

Wartość zwracana

Wartość wyliczenia month.

month_day_last

month_day_last Pobiera wartość przechowywaną w tym year_month_day_lastpliku .

constexpr month_day_last month_day_last() const noexcept;

Wartość zwracana

Wartość month_day_last przechowywana w tym obiekcie year_month_day_last.

operator sys_days

Pobierz miesiąc, dzień i rok w tym year_month_day_last jako liczbę dni z epoki zegara systemowego.

constexpr explicit operator sys_days() const noexcept;

Wartość zwracana

Zwraca sys_days{this->year()/this->month()/this->day()}

Przykład

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

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ June / last / 2021 };
    auto sd = sys_days(ymdl);
    std::cout << sd.time_since_epoch();

    return 0;
}
18808d

year

Pobierz rok.

constexpr year year() const noexcept;

Wartość zwracana

year.

ok

Sprawdź, czy wartości year i month_day_last przechowywane w tym year_month_day_last zakresie znajdują się w prawidłowym zakresie.

constexpr bool ok() const noexcept;

Wartość zwracana

true jeśli wartość year i month_day_last jest przechowywana w tym year_month_day_last zakresie, znajdują się w prawidłowym zakresie. W przeciwnym razie wartość false.

operator+=

Dodaj miesiące lub lata do tego year_month_day_lastelementu .

1) constexpr year_month_day_last& operator+=(const months& m) noexcept;
2) constexpr year_month_day_last& operator+=(const years& y) noexcept;

Parametry

m
Liczba miesięcy do dodania.

y
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_last ymdl{ April / last / 1975 };

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

    ymdl += months{1};
    ymdl += years{1};

    std::cout << ymdl;
    
    return 0;
}
1975/Apr/last
1976/May/last

operator-=

Odejmij miesiące lub lata od tego year_month_day_last.

1) constexpr year_month_day_last& operator-=(const months& m) noexcept;
2) constexpr year_month_day_last& operator-=(const years& y) noexcept;

Parametry

m
Liczba miesięcy do odejmowania.

y
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_last ymdl{ April / last / 1975 };

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

    ymdl -= months{1};
    ymdl -= years{1};

    std::cout << ymdl;
    
    return 0;
}
1975/Apr/last
1974/Mar/last

Zobacz też

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