Condividi tramite


Classe year_month_day_last

Rappresenta l'ultimo giorno di un anno e un mese specifici.

year_month_day_last supporta l'aritmetica mensile e gli anni aritmetici, ma non i giorni aritmetici. Per eseguire operazioni aritmetiche orientate ai giorni, convertire l'oggetto year_month_day_last in un oggetto sys_days.

Sintassi

class year_month_day_last; // C++20

Membri

Nome Descrizione
Costruttori Costruire un oggetto year_month_day_last
day Ottiene l'ultimo giorno del mese/anno.
month Ottenere il mese.
month_day_last Ottenere il valore month_day_last archiviato in questo year_month_day_lastoggetto .
ok Verificare che i year valori e month siano inclusi nell'intervallo valido.
operator+= Aggiungere mesi o anni a questo year_month_day_lastoggetto .
operator-= Sottrae mesi o anni da questo year_month_day_lastoggetto .
operator local_days Ottenere il numero di giorni dal sys_days periodo a questo year_month_day_last come local_days.
operator sys_days Ottenere il numero di giorni dal sys_days periodo a questo year_month_day_last come sys_days.
year Prendi l'anno.

Membri non membri

Nome Descrizione
operator+ Aggiungere mesi o anni.
operator- Sottrae mesi o anni.
operator== Determinare se due year_month_day_last valori sono uguali.
operator<=> Confrontare due year_month_day_last valori. Gli >, >=, <=, <, != operatori vengono sintetizzati dal compilatore.
operator<< Restituire un oggetto year_month_day_last a un flusso.

Requisiti

Intestazione: <chrono> (da C++20)

Spazio dei nomi: std::chrono

Opzione del compilatore: /std:c++latest

Costruttori

Costruire un oggetto year_month_day_last per un mese e un anno specificati.

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

Parametri

mdl Il valore del mese da month_day_last viene archiviato nell'oggetto costruito year_month_day_last.

y
Il year valore viene archiviato nell'oggetto costruito year_month_day_last.

Osservazioni:

Per informazioni sulla sintassi C++20 usata per specificare le date, vedere operator/

Esempio: Creare un oggetto 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

Se ok() è true, restituisce un giorno che rappresenta l'ultimo giorno dell'anno, il mese rappresentato da questo year_month_day_lastoggetto .

constexpr day day() const noexcept;

Valore restituito

Se ok() è true, restituisce un oggetto day che rappresenta l'ultimo giorno dell'anno e del mese rappresentato da *this. In caso contrario, il valore restituito non è specificato.

local_days

Ottiene il mese, il giorno e l'anno in questo year_month_day_last come conteggio dei giorni.

constexpr explicit operator local_days() const noexcept;

Valore restituito

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

Esempio

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

Ottenere il valore del mese archiviato.

constexpr month month() const noexcept;

Valore restituito

Valore month.

month_day_last

Ottiene il month_day_last valore archiviato in questo year_month_day_lastoggetto .

constexpr month_day_last month_day_last() const noexcept;

Valore restituito

Valore month_day_last archiviato in questo year_month_day_lastoggetto .

operator sys_days

Ottiene il mese, il giorno e l'anno in questo year_month_day_last come conteggio di giorni dall'epoca per l'orologio di sistema.

constexpr explicit operator sys_days() const noexcept;

Valore restituito

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

Esempio

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

Prendi l'anno.

constexpr year year() const noexcept;

Valore restituito

Il year.

ok

Controllare se il year valore e month_day_last archiviato in questo year_month_day_last intervallo sono entrambi inclusi nell'intervallo valido.

constexpr bool ok() const noexcept;

Valore restituito

true se il year valore e month_day_last archiviato in questo year_month_day_last sono entrambi nell'intervallo valido. In caso contrario, false.

operator+=

Aggiungere mesi o anni a questo year_month_day_lastoggetto .

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

Parametri

m
Numero di mesi da aggiungere.

y
Numero di anni da aggiungere.

Valore restituito

*this, che riflette il risultato dell'addizione.

Esempio: 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-=

Sottrae mesi o anni da questo year_month_day_lastoggetto .

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

Parametri

m
Numero di mesi da sottrarre.

y
Numero di anni da sottrarre.

Valore restituito

*this, che riflette il risultato della sottrazione.

Esempio: 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

Vedi anche

<chrono>
year
year_month
year_month_day
year_month_weekday
year_month_weekday_last
operator/
Riferimento file di intestazione