Classe year_month_weekday

Rappresenta un anno, un mese e un n° giorno feriale del mese specifico.

Sintassi

class year_month_weekday; // C++20

Osservazioni:

year_month_weekday supporta aritmetica orientata a anni e mesi, ma non aritmetica orientata ai giorni. Per l'aritmetica orientata ai giorni, usare la conversione per eseguire la sys_days conversione in , sys_daysche supporta l'aritmetica orientata ai giorni.

year_month_weekday è un tipo di classe di layout semplice e copiabile standard.

Membri

Nome Descrizione
Constructor Costruire un year_month_weekday oggetto con il mese e il giorno della settimana specificati.
index Ottiene l'indice del giorno feriale.
month Ottenere il valore del mese.
ok Controllare se è year_month_weekday valido.
operator+= Aggiungere il numero specificato di mesi o anni.
operator-= Sottrarre il numero specificato di mesi o anni.
operator local_days Ottenere il numero di giorni dal system_clock periodo a questo year_month_weekday come local_days.
operator sys_days Ottenere il numero di giorni dal system_clock periodo a questo year_month_weekday come sys_days.
weekday Prendi il giorno feriale.
weekday_indexed Ottenere l'oggetto [weekday_indexed] archiviato in questo year_month_weekdayoggetto .
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_weekday valori sono uguali.
operator<< Restituisce un oggetto year_month_weekday nel flusso specificato.

Requisiti

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

Spazio dei nomi: std::chrono

Opzione del compilatore: /std:c++latest

Costruttore

Costruisce un oggetto year_month_weekday.

// 1)
year_month_weekday() = default

// 2)
constexpr year_month_weekday(const year& y, const month& m, const weekday_indexed& wdi) noexcept;

// 3) 
constexpr explicit year_month_weekday(const local_days& dp) noexcept;

// 4)
constexpr year_month_weekday(const sys_days& dp) noexcept;

Parametri

m
Valore month.

dp
A sys_days o local_days

wdi
Valore weekday.

y
Valore year.

Osservazioni: Costruttore

1) Il costruttore predefinito non inizializza alcuno dei campi.

2) Costruisce un oggetto year_month_weekday che corrisponde all'oggetto , monthe weekday_indexedspecificatoyear.

3) Costruisce un oggetto year_month_weekday che corrisponde alla data rappresentata da sys_days{dp.time_since_epoch()}.

4) Costruisce un oggetto year_month_weekday che corrisponde alla data rappresentata da dp. Per qualsiasi year_month_weekday (ymdl) per il quale ok() è true, il confronto con operator== con sarà year_month_weekday{sys_days{ymdl}} true.

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

Esempio: Creare un oggetto year_month_weekday

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

using namespace std::chrono;

int main()
{
    year_month_weekday ymw{1997y / January / Wednesday[1]};
    std::cout << ymw << '\n';
    
    return 0;
}
1997/Jan/Wed[1]

index

Ottiene l'indice della settimana del giorno feriale in questo year_month_weekdayoggetto .

constexpr unsigned index() const noexcept;

Valore restituito

Indice del giorno feriale. Ad esempio, se il giorno feriale era il primo mercoledì della settimana, l'indice sarà 1.

month

Ottenere il valore del mese.

constexpr month month() const noexcept;

Valore restituito

Valore month.

ok

Controllare se il valore archiviato in questo year_month_weekday oggetto è valido. L'oggetto , e archiviato in questo year_month_weekday deve essere ok per questa funzione per restituire true.weekday_index monthyear In caso contrario, restituisce false.

constexpr bool ok() const noexcept;

Valore restituito

true se il year_month_weekday valore è valido. In caso contrario, false.
È year_month_weekday valido se sia l'oggetto month è valido che il weekday_indexed valore è valido.

operator+=

Aggiungere mesi o anni a questo year_month_weekdayoggetto .

1) constexpr year_month_weekday& operator+=(const months& m) noexcept;
2) constexpr year_month_weekday& 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_weekday ymw{1997y / January / Wednesday[1]};
    std::cout << ymw << '\n';

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

    std::cout << ymw << '\n';
    
    return 0;
}
1997/Jan/Wed[1]
1998/Feb/Wed[1]

operator-=

Sottrae mesi o anni da questo year_month_weekdayoggetto .

1) constexpr year_month_weekday& operator-=(const months& m) noexcept;
2) constexpr year_month_weekday& 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_weekday ymw{1997y / January / Wednesday[1]};
    std::cout << ymw << '\n';

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

    std::cout << ymw << '\n';
    
    return 0;
}
1997/Jan/Wed[1]
1995/Dec/Wed[1]

operator local_days

Ottenere il numero di giorni dal system_clock periodo (1/1/1970) a questo year_month_weekday come local_days

constexpr explicit operator local_days() const noexcept;

Valore restituito

Se ok(), restituisce un conteggio di giorni come local_days{sys_days{*this}.time_since_epoch()}. In caso contrario, il valore restituito non è specificato.

operator sys_days

Ottenere il numero di giorni dal system_clock periodo (1/1/1970) a questo year_month_day come sys_days.

constexpr operator sys_days() const noexcept;

Valore restituito

Se ok(), restituisce un sys_days oggetto che rappresenta la data di (index() - 1) * 7 giorni successivi al primo weekday() di year()/month(). Se index() è 0, l'oggetto restituito sys_days rappresenta la data 7 giorni prima del primo weekday() di year()/month().

weekday

Ottiene l'oggetto weekday archiviato nell'oggetto weekday_indexed archiviato in questo year_month_weekdayoggetto .

constexpr weekday weekday() const noexcept;

Valore restituito

Valore weekday.

weekday_indexed

Ottenere l'oggetto weekday_indexed archiviato in questo year_month_weekdayoggetto .

constexpr weekday_indexed weekday_indexed() const noexcept;

Valore restituito

Valore weekday_indexed.

year

Ottiene il valore dell'anno.

constexpr year year() const noexcept;

Valore restituito

Valore year.

Vedi anche

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