Sdílet prostřednictvím


Třída year_month_day_last

Představuje poslední den konkrétního roku a měsíce.

year_month_day_last podporuje aritmetické aritmetické měsíce a roky aritmetické, ale nikoli aritmetické dny. Chcete-li provést aritmetické dny orientované na dny, převeďte na year_month_day_last .sys_days

Syntaxe

class year_month_day_last; // C++20

Členové

Název Popis
Konstruktory Vytvoření year_month_day_last
day Získejte poslední den v měsíci/roce.
month Získejte měsíc.
month_day_last Získejte hodnotu month_day_last uloženou v tomto year_month_day_lastsouboru .
ok Ověřte, že year jsou hodnoty month v platném rozsahu.
operator+= Přidejte k tomu year_month_day_lastměsíce nebo roky .
operator-= Odečítá měsíce nebo roky od tohoto year_month_day_last.
operator local_days Získejte počet dní od epochy sys_days do této year_month_day_last doby jako local_days.
operator sys_days Získejte počet dní od epochy sys_days do této year_month_day_last doby jako sys_days.
year Získejte rok.

Nečlenové

Název Popis
operator+ Přidejte měsíce nebo roky.
operator- Odečítá měsíce nebo roky.
operator== Určete, zda jsou dvě year_month_day_last hodnoty stejné.
operator<=> Porovnejte dvě year_month_day_last hodnoty. Operátory >, >=, <=, <, != jsou syntetizovány kompilátorem.
operator<< year_month_day_last Výstup streamu

Požadavky

Hlavička: <chrono> (od C++20)

Obor názvů: std::chrono

Možnost kompilátoru: /std:c++latest

Konstruktory

Vytvořte pro year_month_day_last zadaný měsíc a rok.

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

Parametry

mdl Hodnota měsíce z objektu month_day_last je uložena ve vytvořeném year_month_day_lastobjektu .

y
Hodnota year je uložena v vytvořeném year_month_day_lastobjektu .

Poznámky

Informace o syntaxi jazyka C++20 použité k určení kalendářních dat najdete v tématu operator/

Příklad: Vytvoření 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

Pokud ok() je true, vrátí den představující poslední den v roce, měsíc reprezentovaný tímto year_month_day_last.

constexpr day day() const noexcept;

Vrácená hodnota

Pokud ok() je true, vrátí hodnotu day představující poslední den v roce a měsíc reprezentovaný *this. V opačném případě není zadaná návratová hodnota.

local_days

Získejte v tomto year_month_day_last měsíci, dni a roce počet dní.

constexpr explicit operator local_days() const noexcept;

Vrácená hodnota

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

Příklad

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

Získá uloženou hodnotu měsíce.

constexpr month month() const noexcept;

Vrácená hodnota

Hodnota month.

month_day_last

Získá hodnotu uloženou month_day_last v tomto year_month_day_last.

constexpr month_day_last month_day_last() const noexcept;

Vrácená hodnota

Hodnota uložená month_day_last v tomto year_month_day_lastsouboru .

operator sys_days

Získejte měsíc, den a rok v tomto year_month_day_last formátu jako počet dnů od epochy systémového času.

constexpr explicit operator sys_days() const noexcept;

Vrácená hodnota

Návraty sys_days{this->year()/this->month()/this->day()}

Příklad

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

Získejte rok.

constexpr year year() const noexcept;

Vrácená hodnota

year.

ok

Zkontrolujte, jestli jsou v platném rozsahu year uložená hodnota i month_day_last hodnota year_month_day_last .

constexpr bool ok() const noexcept;

Vrácená hodnota

truepokud jsou v platném year_month_day_last rozsahu year uložená hodnota i month_day_last hodnota. V opačném případě hodnota false.

operator+=

Přidejte k tomu year_month_day_lastměsíce nebo roky .

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

Parametry

m
Počet měsíců, které se mají sčítat.

y
Počet roků, které se mají sčítat.

Vrácená hodnota

*this, který odráží výsledek sčítání.

Příklad: 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-=

Odečítá měsíce nebo roky od tohoto 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
Počet měsíců, které se mají odečíst.

y
Počet roků, které se mají odečíst.

Vrácená hodnota

*this, který odráží výsledek odčítání.

Příklad: 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

Viz také

<chrono>
year
year_month
year_month_day
year_month_weekday
year_month_weekday_last
operator/
Referenční informace k souborům hlaviček