Condividi tramite


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 weekdayoggetto .
operator-- Decrementare l'oggetto weekday.
operator-= Sottrarre il numero specificato di giorni feriali da questo weekdayoggetto .
operator[] Creare un weekday_indexed o un weekday_last da questo weekdayoggetto .

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 weekdayoggetto .
operator- Sottrarre il numero specificato di giorni feriali da questo weekdayoggetto 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 dpe costruisce un weekday oggetto utilizzando tale giorno.
4) Calcola il giorno della settimana che corrisponde al std::chrono::local_days valore dpe 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 weekdaysia 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 weekdayoggetto .

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