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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour