Compartilhar via


Classe year_month_day_last

Representa o último dia de um ano e mês específicos.

year_month_day_last dá suporte à aritmética de mês e anos, mas não à aritmética de dias. Para fazer aritmética orientada a dias, converta year_month_day_last em um sys_days.

Sintaxe

class year_month_day_last; // C++20

Membros

Nome Descrição
Construtores Construir um year_month_day_last
day Obtenha o último dia do mês/ano.
month Obtenha o mês.
month_day_last Obtenha o valor month_day_last armazenado neste year_month_day_last.
ok Verifique se os valores year e month estão no intervalo válido.
operator+= Adicione meses ou anos a esse year_month_day_last.
operator-= Subtraia meses ou anos desse year_month_day_last.
operator local_days Obtenha a contagem de dias da época sys_days para esse year_month_day_last como local_days.
operator sys_days Obtenha a contagem de dias da época sys_days para esse year_month_day_last como sys_days.
year Obtenha o ano.

Não membros

Nome Descrição
operator+ Adicione meses ou anos.
operator- Subtraia meses ou anos.
operator== Determine se dois valores year_month_day_last são iguais.
operator<=> Compare dois valores year_month_day_last. Os operadores >, >=, <=, <, != são sintetizados pelo compilador.
operator<< Gere um year_month_day_last para um fluxo.

Requisitos

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

Namespace: std::chrono

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

Construtores

Construa um year_month_day_last para um mês e um ano especificados.

constexpr year_month_day_last(const year& y, const month_day_last& mdl) noexcept;

Parâmetros

mdl O valor mensal de month_day_last é armazenado no year_month_day_last construído.

y
O valor year é armazenado no year_month_day_last construído.

Comentários

Para obter informações sobre a sintaxe do C++20 usada para especificar datas, consulte operator/

Exemplo: criar um year_month_day_last

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

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ April / last / 1975 };
    std::cout << ymdl;

    return 0;
}
1975/Apr/last

day

Se ok() for true, ele retornará um dia representando o último dia do ano, mês representado por esse year_month_day_last.

constexpr day day() const noexcept;

Valor retornado

Se ok() for true, ele retornará um day representando o último dia do ano e mês representado por *this. Caso contrário, o valor retornado não será especificado.

local_days

Obtenha o mês, o dia e o ano nesse year_month_day_last como uma contagem de dias.

constexpr explicit operator local_days() const noexcept;

Valor retornado

local_days{sys_days{*this}.time_since_epoch()}

Exemplo

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

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ June / last / 2021 };
    auto ld = local_days(ymdl);
    std::cout << ld.time_since_epoch();

    return 0;
}
18808d

month

Obtenha o valor do mês armazenado.

constexpr month month() const noexcept;

Valor retornado

O valor month.

month_day_last

Obtém o valor month_day_last armazenado nesse year_month_day_last.

constexpr month_day_last month_day_last() const noexcept;

Valor retornado

O valor month_day_last armazenado nesse year_month_day_last.

operator sys_days

Obtenha o mês, o dia e o ano nesse year_month_day_last como uma contagem de dias da época para o relógio do sistema.

constexpr explicit operator sys_days() const noexcept;

Valor retornado

Retorna sys_days{this->year()/this->month()/this->day()}

Exemplo

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

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ June / last / 2021 };
    auto sd = sys_days(ymdl);
    std::cout << sd.time_since_epoch();

    return 0;
}
18808d

year

Obtenha o ano.

constexpr year year() const noexcept;

Valor retornado

O year.

ok

Verifique se os valores year e month_day_last armazenados nesse year_month_day_last estão no intervalo válido.

constexpr bool ok() const noexcept;

Valor retornado

true se os valores year e month_day_last armazenados nesse year_month_day_last estão no intervalo válido. Caso contrário, false.

operator+=

Adicione meses ou anos a esse year_month_day_last.

1) constexpr year_month_day_last& operator+=(const months& m) noexcept;
2) constexpr year_month_day_last& operator+=(const years& y) noexcept;

Parâmetros

m
O número de meses a serem adicionados.

y
O número de anos a ser adicionado.

Valor retornado

*this, que reflete o resultado da adição.

Exemplo: operator+=

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

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ April / last / 1975 };

    std::cout << ymdl << '\n';

    ymdl += months{1};
    ymdl += years{1};

    std::cout << ymdl;
    
    return 0;
}
1975/Apr/last
1976/May/last

operator-=

Subtraia meses ou anos desse year_month_day_last.

1) constexpr year_month_day_last& operator-=(const months& m) noexcept;
2) constexpr year_month_day_last& operator-=(const years& y) noexcept;

Parâmetros

m
O número de meses para subtração.

y
O número de anos para subtração.

Valor retornado

*this, que reflete o resultado da subtração.

Exemplo: operator-=

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

using namespace std::chrono;

int main()
{
    year_month_day_last ymdl{ April / last / 1975 };

    std::cout << ymdl << '\n';

    ymdl -= months{1};
    ymdl -= years{1};

    std::cout << ymdl;
    
    return 0;
}
1975/Apr/last
1974/Mar/last

Confira também

<chrono>
year
year_month
year_month_day
year_month_weekday
year_month_weekday_last
operator/
Referência de Arquivos de Cabeçalho