Classe day

Representa um dia do mês. Por exemplo, o 25º dia do mês.

Sintaxe

class day; // C++20

Comentários

Um day normalmente contém valores no intervalo [1, 31]. Ele pode conter valores não negativos fora desse intervalo, mas o comportamento não será especificado se não estiver dentro do intervalo [0, 255].

Membros

Nome Descrição
Construtores Construa um day.
ok Verifique se o valor do dia está no intervalo válido [1,31].
operator++ Incremente este day.
operator+= Adicione o número especificado de dias a este day.
operator-- Reduzir o day.
operator-= Subtrair o número especificado de dias a partir deste day
operator unsigned Obtenha o valor do dia como um inteiro sem sinal.

Não membros

Nome Descrição
from_stream Analise um day do fluxo fornecido usando o formato especificado.
operator+ Adicione um número especificado de dias a este day, retornando um novo objeto day.
operator- Subtraia o número especificado de dias a partir deste day, retornando um novo objeto day.
operator== Determinar se duas instâncias day são iguais.
operator<=> Compare este day com outro day. Os operadores >, >=, <=, <, != são sintetizados pelo compilador.
operator<< Gerar um day para o fluxo fornecido.
operator""d Crie um literal day para um dia no mês.

Requisitos

Cabeçalho:<chrono> (desde C++20)

Namespace:std::chrono

Opção do compilador:/std:c++latest

Construtores

Constrói um day.

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

Parâmetros

d
Construa um day com valor d.

Comentários

1) O construtor padrão não inicializa o valor do dia.
2) Construa um day com o valor do dia inicializado para d.

Exemplo: criar um 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

Verifique se o valor armazenado neste day está no intervalo válido.

constexpr bool ok() const noexcept;

Retornar valor

true if se o valor do dia estiver no intervalo [1,31]. Caso contrário, false.

operator++

Adicione 1 ao valor do dia.

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

Retornar valor

1) Uma referência a *thisdaydepois que ela foi incrementada (um incremento de pós-fixação).
2) Uma cópia do day, antes de ter sido incrementado (um incremento de prefixo).

Exemplo: 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

Comentários

Se o resultado incrementado estiver fora do intervalo [0, 255], o valor armazenado não será especificado.

operator--

Subtraia 1 do valor do dia.

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

Retornar valor

1) Uma referência ao *this dia após a redução (uma redução pós-fixada).
2) Uma cópia do *day, antes de ter sido reduzido (uma redução de prefixo).

Exemplo: 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

Comentários

Se o resultado reduzido estiver fora do intervalo [0, 255], o valor armazenado não será especificado.

operator+=

Adicione dias a este day.

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

Parâmetros

d
O número de dias a serem adicionados.

Retornar valor

*this

Se o resultado estiver fora do intervalo [0, 255], o valor armazenado não será especificado.

operator-=

Subtraia dias a deste day.

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

Parâmetros

d
O número de dias a subtrair.

Retornar valor

*this. Se o resultado estiver fora do intervalo [0, 255], o valor armazenado não será especificado.

operator unsigned

Obtenha o valor day.

explicit constexpr operator unsigned() const noexcept;

Retornar valor

O valor do day

Exemplo: 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

Confira também

<chrono>
month_day classe
month_day_last classe
year_month_day
year_month_day_last
Referência de Arquivos de Cabeçalho