Partager via


Classe year_month_day

Représente un mois, une année et un jour.

Syntaxe

class year_month_day; // C++20

Membres

Nom Description
Constructeurs Construire un year_month_day
day Retourne le jour.
month Retourne le mois.
ok Vérifiez que les valeurs et month les year valeurs se trouvent dans la plage valide.
operator+= Ajoutez le nombre spécifié de mois ou d’années.
operator-= Soustrait le nombre spécifié de mois ou d’années.
operator local_days Obtenez le nombre de jours de l’époque system_clock jusqu’à ce year_month_day que local_days.
operator sys_days Obtenez le nombre de jours de l’époque system_clock jusqu’à ce year_month_day que sys_days.
year Retourne l’année.

Non-membres

Nom Description
from_stream Analyser un year_month_day flux à partir d’un flux à l’aide du format spécifié
operator+ Ajoutez des mois ou des années.
operator- Soustraire des mois ou des années.
operator== Déterminez si deux year_month_day valeurs sont égales.
operator<=> Comparez deux year_month_day valeurs. Les >, >=, <=, <, != opérateurs sont synthétisés par le compilateur.
operator<< Sortie d’un year_month_day flux.

Spécifications

En-tête : <chrono> (depuis C++20)

Espace de noms : std::chrono

Option du compilateur : /std:c++latest

Constructeurs

Construisez un year_month_day.

1) year_month_day() = default;
2) constexpr year_month_day(const year& y, const month& m, day& d) noexcept;
3) constexpr year_month_day(const year_month_day_last& ymdl) noexcept;
4) constexpr year_month_day(const sys_days& dp) noexcept;
5) constexpr explicit year_month_day(const local_days& dp) noexcept;

Paramètres

d Valeur day .

dpValeur ou local_days valeursys_days.

m Valeur month .

y
Une valeuryear.

ymdl Valeur year_month_day_last .

Notes

1) Le constructeur par défaut n’initialise pas le mois ou le jour.
2) Construit une année, un year_month_day mois et un jour spécifiés.
3) Construit une year_month_day année, un mois et un jour spécifiés à partir de ymdl
4) Construit une year_month_day avec la même date que dp.
5) Construit un year_month_day avec la même date que dp mais comme si construit par year_month_day(sys_days(dp.time_since_epoch())).

Pour plus d’informations sur la syntaxe C++20 utilisée pour spécifier des dates, consultez operator/

Exemple : Créer un year_month_day

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

using namespace std::chrono;

int main()
{
    year_month_day ymd{ April / 4 / 1975 };
    std::cout << ymd;
    return 0;
}
1975-04-04

day

Obtenez le jour.

constexpr day day() const noexcept;

Valeur retournée

valeur day.

month

Obtenez le mois.

constexpr month month() const noexcept;

Valeur retournée

valeur month.

operator local_days

Obtenez le nombre de jours de l’époque system_clock (1/1/1970) à ceci year_month_day comme local_days

constexpr explicit operator local_days() const noexcept;

Valeur retournée

Si ok(), retourne un nombre de jours sous forme de local_days{sys_days{*this}.time_since_epoch()}

operator sys_days

Obtenez le nombre de jours de l’époque system_clock (1/1/1970) à ceci year_month_day comme sys_days.

constexpr operator sys_days() const noexcept;

Valeur retournée

Si ok(), retourne un sys_days nombre de jours de l’époque sys_days (1/1/1970) jusqu’à la date tenue dans ce year_month_day. La valeur est négative si la date de cette year_month_day date est antérieure à l’époque sys_days .

Si l’année et le mois en sont year_month_day ok(), retourne sys_days{year/month/1d} + (day-1d). Sinon, la valeur retournée n’est pas spécifiée.

Une sys_days plage [days{-12687428}, days{11248737}] peut être convertie en arrière year_month_day et avoir la même valeur.

year

Obtenez l’année.

constexpr year year() const noexcept;

Valeur retournée

Le year.

ok

Vérifiez si la valeur de l’année et du mois stockée dans cette year_month_day plage est valide. Garantit que le jour se trouve dans la plage [1d, (y/m/last).day()], en tenant compte des années bissextiles et du nombre de jours différents de chaque mois.

constexpr bool ok() const noexcept;

Valeur retournée

true si les valeurs de l’année, du year_month_day mois et du jour se trouvent dans la plage valide. Sinon, false.

operator+=

Ajoutez des mois ou des années à cela year_month_day.

1) constexpr year_month_day& operator+=(const months& dm) noexcept;
2) constexpr year_month_day& operator+=(const years& dy) noexcept;

Paramètres

dm
Nombre de mois à ajouter.

dy
Nombre d’années à ajouter.

Valeur retournée

*this, qui reflète le résultat de l’ajout.

Exemple : operator+=

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

using namespace std::chrono;

int main()
{
    year_month_day ymd{June / 1d / 2021y};

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

    ymd += months{2};
    ymd += years{1};

    std::cout << ymd;
    
    return 0;
}
2021-06-01
2022-08-01

operator-=

Soustraire des mois ou des années de ce year_month_day.

1) constexpr year_month_day& operator-=(const months& dm) noexcept;
2) constexpr year_month_day& operator-=(const years& dy) noexcept;

Paramètres

dm
Nombre de mois à soustraire.

dy
Nombre d’années à soustraire.

Valeur retournée

*this, qui reflète le résultat de la soustraction.

Exemple : operator-=

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

using namespace std::chrono;

int main()
{
    year_month_day ymd{June / 1d / 2021y};

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

    ymd -= months{2};
    ymd -= years{1};

    std::cout << ymd;
    
    return 0;
}
2021-06-01
2020-04-01

Voir aussi

<chrono>
year
year_month
year_month_day_last
year_month_weekday
year_month_weekday_last
operator/
Informations de référence sur les fichiers d’en-tête