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
.
dp
Valeur 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