Classe weekday
Rappresenta un giorno della settimana nel calendario gregoriano. Ad esempio, martedì.
Sintassi
class weekday; // C++20
Osservazioni:
Un weekday
oggetto può contenere un valore [0, 255], ma in genere contiene un valore [0, 6] per rappresentare un giorno della settimana.
Per le costanti che è possibile usare con la weekday
classe , vedere Costanti del giorno della settimana di seguito.
Membri
Nome | Descrizione |
---|---|
Costruttori | Creare un oggetto weekday . |
c_encoding |
Ottenere il weekday valore. |
iso_encoding |
Ottenere il valore ISO 8601 weekday . |
ok |
Controllare se il weekday valore è valido. |
operator++ |
Incrementare l'oggetto weekday . |
operator+= |
Aggiungere il numero specificato di giorni feriali a questo weekday oggetto . |
operator-- |
Decrementare l'oggetto weekday . |
operator-= |
Sottrarre il numero specificato di giorni feriali da questo weekday oggetto . |
operator[] |
Creare un weekday_indexed o un weekday_last da questo weekday oggetto . |
Membri non membri
Nome | Descrizione |
---|---|
from_stream |
Analizzare un oggetto weekday dal flusso specificato usando il formato specificato. |
operator+ |
Aggiungere il numero specificato di giorni feriali a questo weekday oggetto . |
operator- |
Sottrarre il numero specificato di giorni feriali da questo weekday oggetto o trovare la differenza tra due weekday oggetti. |
operator== |
Determinare se due weekday oggetti sono uguali. |
operator<< |
Restituire un oggetto weekday a un flusso. |
Requisiti
Intestazione: <chrono>
da C++20
Spazio dei nomi: std::chrono
Opzione del compilatore: /std:c++latest
Costruttori
Costruisce un oggetto weekday
.
1) weekday() = default; // C++20
2) explicit constexpr weekday(unsigned wd) noexcept; // C++20
3) constexpr weekday(const sys_days& dp) noexcept; // C++20
4) explicit constexpr weekday(const local_days& dp) noexcept; // C++20
Parametri
dp
Costruire un weekday
oggetto utilizzando il giorno della settimana dp
.
wd
Costruire un weekday
oggetto con il valore wd
.
Osservazioni:
1) Il costruttore predefinito non inizializza il valore del giorno feriale.
2) Costruire un weekday
oggetto con il valore specificato.
Se wd
è 7, viene weekday
costruito con un valore pari a 0.
Non inizializzare con valori superiori a 255 o il risultato weekday
avrà un valore non specificato.
3) Calcola il giorno della settimana corrispondente al std::chrono::sys_days
valore dp
e costruisce un weekday
oggetto utilizzando tale giorno.
4) Calcola il giorno della settimana che corrisponde al std::chrono::local_days
valore dp
e costruisce un weekday
oggetto utilizzando quel giorno. Si comporta come se l'oggetto weekday
fosse stato creato usando weekday(std::chrono::sys_days(dp.time_since_epoch()))
.
Esempio: Creare un oggetto weekday
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
weekday wd{ Wednesday };
weekday wd2{ 3 };
std::cout << wd << '\n' << wd2;
return 0;
}
Wednesday
Wednesday
c_encoding
constexpr unsigned c_encoding() const noexcept;
Valore restituito
Valore del giorno della settimana.
iso_encoding
Il valore del giorno feriale, ma con domenica (0) viene interpretato come 7 per ISO 8601.
constexpr unsigned iso_encoding() const noexcept;
Valore restituito
Valore del giorno della settimana.
ok
Controllare se il valore archiviato in questo weekday
intervallo è valido.
constexpr bool is_leap() const noexcept;
Valore restituito
true
se il valore del giorno feriale è compreso nell'intervallo [0, 6]. In caso contrario, false
.
operator++
Aggiungere 1 al valore del giorno feriale.
1) constexpr std::chrono::weekday& operator++() noexcept;
2) constexpr std::chrono::weekday operator++(int) noexcept;
Valore restituito
1) Un riferimento al *this
giorno feriale dopo l'incremento (incremento di un prefisso).
2) Una copia di , prima che weekday
sia stata incrementata (un incremento del prefisso).
Esempio: operator++
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
std::chrono::weekday wd{Thursday};
std::cout << wd << " " << ++wd << "\n"; // constexpr weekday& operator++() noexcept
std::cout << wd << " " << wd++ << "\n"; // constexpr weekday operator++(int) noexcept
std::cout << wd << "\n";
return 0;
}
Thu Fri
Fri Fri
Sat
Osservazioni:
Il valore incrementato è modulo 7. Sarà sempre compreso nell'intervallo [0, 6].
operator--
Sottrarre 1 dal weekday
valore .
1) constexpr std::chrono::weekday& operator--() noexcept;
2) constexpr std::chrono::weekday operator--(int) noexcept;
Valore restituito
1) Un riferimento a *this
weekday
dopo che è stato decrementato (decrementazione postfix).
2) Copia dell'oggetto weekday
prima che sia stato decrementato (decremento del prefisso).
Esempio: operator--
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
weekday y = weekday{Thursday};
cout << y << " " << --y << "\n"; // constexpr weekday& operator--() noexcept
cout << y << " " << y-- << "\n"; // constexpr weekday operator--(int) noexcept
cout << y << "\n";
return 0;
}
Thu Wed
Wed Wed
Tue
Osservazioni:
Se il risultato decrementato è minore di 0, viene impostato su 6.
operator+=
Aggiungere giorni a un oggetto weekday
.
constexpr weekday& operator+=(const days& d) noexcept;
Parametri
*d*
Numero di giorni da aggiungere.
Valore restituito
Valore di *this + d
. Il risultato sarà modulo 7, nell'intervallo [0, 6].
operator-=
Sottrarre i giorni dall'oggetto weekday
.
constexpr weekday& operator-=(const days& d) noexcept;
Parametri
*d*
Numero di giorni da sottrarre.
Valore restituito
Valore di *this - d
. Il risultato sarà modulo 7, nell'intervallo [0, 6].
operator[]
Creare un weekday_indexed o un weekday_last da questo weekday
oggetto .
1) std::chrono::weekday_indexed(*this, index) // C++20
2) std::chrono::weekday_last(*this) // C++20
Valore restituito
1) std::chrono::weekday_indexed(*this, index)
2) std::chrono::weekday_last(*this)
Esempio: operator[]
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
{
constexpr auto firstMondayInJanuary =
year_month_day{ Monday[2] / January / 2021y };
std::cout << firstMondayInJanuary << "\n";
constexpr auto lastMondayInJanuary =
year_month_day{ Tuesday[last] / January / 2021y };
std::cout << lastMondayInJanuary << "\n";
}
2021-01-11
2021-01-26
Costanti del giorno della settimana
(C++20) L'intestazione <chrono>
definisce le costanti seguenti che è possibile usare con weekday
per maggiore praticità, sicurezza dei tipi e manutenibilità del codice. Queste costanti sono incluse nell'ambito quando std::chrono
si trova nell'ambito.
// Calendrical constants
inline constexpr std::chrono::weekday Sunday{0};
inline constexpr std::chrono::weekday Monday{1};
inline constexpr std::chrono::weekday Tuesday{2};
inline constexpr std::chrono::weekday Wednesday{3};
inline constexpr std::chrono::weekday Thursday{4};
inline constexpr std::chrono::weekday Friday{5};
inline constexpr std::chrono::weekday Saturday{6};
Vedi anche
Classe weekday_last
Classe weekday_indexed
<chrono>
Riferimento file di intestazione