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_days
che 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_weekday oggetto . |
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 , month
e weekday_indexed
specificatoyear
.
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_weekday
oggetto .
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
month
year
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_weekday
oggetto .
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_weekday
oggetto .
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_weekday
oggetto .
constexpr weekday weekday() const noexcept;
Valore restituito
Valore weekday
.
weekday_indexed
Ottenere l'oggetto weekday_indexed
archiviato in questo year_month_weekday
oggetto .
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