Condividi tramite


Classe day

Rappresenta un giorno del mese. Ad esempio, il 25° giorno del mese.

Sintassi

class day; // C++20

Osservazioni:

In day genere contiene valori nell'intervallo [1, 31]. Può contenere valori non negativi all'esterno di questo intervallo, ma il comportamento non è specificato se non è compreso nell'intervallo [0, 255].

Membri

Nome Descrizione
Costruttori Creare un oggetto day.
ok Verificare che il valore del giorno sia compreso nell'intervallo valido [1,31].
operator++ Incrementare l'oggetto day.
operator+= Aggiungere il numero specificato di giorni a questo dayoggetto .
operator-- Decrementare l'oggetto day.
operator-= Sottrarre il numero specificato di giorni da questo day
operator unsigned Ottiene il valore del giorno come intero senza segno.

Membri non membri

Nome Descrizione
from_stream Analizzare un oggetto day dal flusso specificato usando il formato specificato.
operator+ Aggiungere il numero specificato di giorni a questo dayoggetto , restituendo un nuovo day oggetto .
operator- Sottrarre il numero specificato di giorni da questo dayoggetto , restituendo un nuovo day oggetto .
operator== Determinare se due day istanze sono uguali.
operator<=> Confrontarlo day con un altro dayoggetto . Gli >, >=, <=, <, != operatori vengono sintetizzati dal compilatore.
operator<< Restituisce un oggetto day nel flusso specificato.
operator""d Creare un day valore letterale per un giorno nel mese.

Requisiti

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

Spazio dei nomi: std::chrono

Opzione del compilatore: /std:c++latest

Costruttori

Costruisce un oggetto day.

1) day() = default;
2) explicit constexpr day(unsigned d) noexcept;

Parametri

d
Costruire un day oggetto con il valore d.

Osservazioni:

1) Il costruttore predefinito non inizializza il valore del giorno.
2) Costruire un day oggetto con il valore del giorno inizializzato in d.

Esempio: Creare un oggetto day

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

using namespace std::chrono;

int main()
{
    day d{1}; // day 1
    day d2 = 2d; // day 2

    std::cout << d << ", " << d2;

    return 0;
}
01, 02

ok

Controllare se il valore archiviato in questo day intervallo è valido.

constexpr bool ok() const noexcept;

Valore restituito

true se il valore del giorno è compreso nell'intervallo [1,31]. In caso contrario, false.

operator++

Aggiungere 1 al valore del giorno.

1) constexpr std::chrono::day& operator++() noexcept;
2) constexpr std::chrono::day operator++(int) noexcept;

Valore restituito

1) Un riferimento a *this day dopo che è stato incrementato (un incremento del prefisso).
2) Una copia di , prima che daysia stata incrementata (un incremento del prefisso).

Esempio: operator++

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

using namespace std::chrono;

int main()
{
    day d{1};

    std::cout << d << " " << ++d << "\n"; // constexpr day& operator++() noexcept
    std::cout << d << " " << d++ << "\n"; // constexpr day operator++(int) noexcept
    std::cout << d;

    return 0;
}
01 02
02 02
03

Osservazioni:

Se il risultato incrementato non è compreso nell'intervallo [0, 255], il valore archiviato non è specificato.

operator--

Sottrarre 1 dal valore del giorno.

1) constexpr std::chrono::day& operator--() noexcept;
2) constexpr std::chrono::day operator--(int) noexcept;

Valore restituito

1) Un riferimento al *this giorno dopo che è stato decrementato (decremento postfissi).
2) Una copia di , prima che *daysia stata decrementata (decremento del prefisso).

Esempio: operator--

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

int main()
{
    day d{5};
    std::cout << d << " " << --d << "\n"; // constexpr day& operator--() noexcept
    std::cout << d << " " << d-- << "\n"; // constexpr day operator--(int) noexcept
    std::cout << d << "\n";

    return 0;
}
05 04
04 04
03

Osservazioni:

Se il risultato decrementato non è compreso nell'intervallo [0, 255], il valore archiviato non è specificato.

operator+=

Aggiungere giorni a questo dayoggetto .

constexpr day& operator+=(const days& d) noexcept;

Parametri

d
Numero di giorni da aggiungere.

Valore restituito

*this

Se il risultato non rientra nell'intervallo [0, 255], il valore archiviato non è specificato.

operator-=

Sottrae i giorni da questo dayoggetto .

constexpr day& operator-=(const days& d) noexcept;

Parametri

d
Numero di giorni da sottrarre.

Valore restituito

*this. Se il risultato non rientra nell'intervallo [0, 255], il valore archiviato non è specificato.

operator unsigned

Ottenere il day valore.

explicit constexpr operator unsigned() const noexcept;

Valore restituito

Valore dell'oggetto day

Esempio: operator unsigned()

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

int main()
{
    chrono::day d{14d};
    unsigned dayValue = static_cast<unsigned>(d);
    cout << dayValue << "\n";
    
    return 0;
}
14

Vedi anche

<chrono>
Classe month_day
Classe month_day_last
year_month_day
year_month_day_last
Riferimento file di intestazione