<chrono>
Incluez l’en-tête <chrono>
standard pour définir des classes et des fonctions qui représentent et manipulent des durées et des instants de temps.
À compter de Visual Studio 2015, l’implémentation steady_clock
a changé pour répondre aux exigences C++ Standard pour la convivialité et la monotonie :
steady_clock
est maintenant basé surQueryPerformanceCounter()
high_resolution_clock
est maintenant un typedef poursteady_clock
l’implémentation Microsoft C++,steady_clock::time_point
est maintenant pourtypedef
chrono::time_point<steady_clock>
. Toutefois, ce n’est pas nécessairement le cas pour d’autres implémentations.
Spécifications
En-tête : <chrono>
Les législatures régionales apportent occasionnellement des modifications aux fuseaux horaires, et un organisme international de normes spécifie quand de nouvelles secondes bissextiles doivent être prises en compte. Une base de données de ces modifications a été ajoutée à Windows 10. Plus précisément :
Fonctionnalité | Version du client | Version du serveur |
---|---|---|
Mises à jour de la base de données Leap second | Windows 10, version 1809 ou ultérieure | Windows Server 2019 ou ultérieur |
Prise en charge des fuseaux horaires | Windows 10 version 1903/19H1 ou ultérieure | Windows Server 2022 ou ultérieur |
L’utilisation des fonctionnalités de fuseau horaire sur les versions antérieures de Windows entraîne une erreur d’exécution.
Espace de noms : std
Types calendriques
Nom | Description |
---|---|
Struct common_type |
Décrit les spécialisations du modèle common_type de classe pour les instanciations de duration et time_point . |
day , classe |
Un jour du mois. Par exemple, le 25e jour du mois. |
duration , classe |
Intervalle de temps. |
Struct duration_values |
Fournit des valeurs spécifiques pour le paramètre de modèle duration Rep . |
hh_mm_ss , classe |
Fractionne en duration heures :minutes :secondes. |
last_spec |
Utilisé pour indiquer le dernier élément d’un mois tel que le dernier jour de la semaine d’un mois (le dernier mardi de février 2020) ou le dernier jour d’un mois (le dernier jour d’avril 2019). |
leap_second , classe |
Date et valeur d’un saut de saut inséré. |
Struct leap_second_info |
Données retournées par get_leap_second_info . |
month , classe |
Un mois d’un an. Par exemple, juillet. |
month_day , classe |
Un jour spécifique d’un mois spécifique. Par exemple, le 30 juillet. |
month_day_last , classe |
Le dernier jour d’un mois. |
month_weekday , classe |
Le nième jour de semaine d’un mois spécifique. |
month_weekday_last , classe |
Le nième jour de semaine d’un mois spécifique. |
time_point , classe |
Limite dans le temps. |
weekday , classe |
Un jour de la semaine. |
weekday_last , classe |
Le dernier jour de semaine d’un mois. |
weekday_indexed , classe |
Combine un jour de la semaine avec un index qui représente le jour de la semaine du mois. |
year , classe |
Une année dans le calendrier grégorien. |
year_month , classe |
Une année et un mois. Le jour n’est pas spécifié. |
year_month_day , classe |
Un an, un mois et un jour. |
year_month_day_last , classe |
Dernier jour d’un mois et d’une année spécifiques. |
year_month_weekday , classe |
Année, mois et nième jour de semaine spécifique du mois. |
year_month_weekday_last , classe |
Année spécifique, mois et dernier jour de semaine du mois. |
Horloges
Nom | Description |
---|---|
file_clock , classe |
Alias de l’horloge utilisée pour std::filesystem::file_time_type , qui est utilisé pour exprimer les horodatages de fichiers. |
gps_clock , classe |
Horloge qui garde le temps GPS. Mesure l’heure à partir du premier dimanche de janvier 1980 à 00:00:00 UTC. |
Struct high_resolution_clock |
Horloge avec une période de graduation nanoseconde. |
Struct local_t |
Pseudo-horloge utilisée comme argument du time_point modèle pour indiquer que l’heure time_point locale représente. |
Struct steady_clock |
Une steady horloge. Cette horloge est préférée pour mesurer les intervalles de temps. |
Struct system_clock |
Horloge basée sur l’horloge en temps réel du système. |
tai_clock , classe |
Mesure l’heure atomique internationale (TAI) à partir du jeudi 1er janvier 1958 à 00:00:00. Cette horloge ne tient pas compte des secondes bissextiles. |
utc_clock , classe |
Mesure l’heure depuis 00:00:00 UTC le jeudi 1er janvier 1970. Cette horloge compte pour les secondes bissextiles et est la norme de temps utilisée dans le monde entier. |
Fuseaux horaires
Nom | Description |
---|---|
choose |
Énumération qui spécifie comment résoudre la conversion ambiguë d’un local_time en .sys_time |
local_info |
Fournit une interface de bas niveau en informations de fuseau horaire sur le résultat de la conversion d’un local_time en un sys_time . |
sys_info |
Fournit une interface de bas niveau en informations de fuseau horaire sur le résultat de la conversion d’un sys_time en un local_time . |
time_zone , classe |
Toutes les transitions de fuseau horaire pour une zone géographique spécifique. |
time_zone_link , classe |
Un autre nom pour un time_zone . |
Struct tzdb |
Représente une copie de la base de données de fuseau horaire. |
tzdb_list , classe |
Liste singleton des bases de données de fuseau horaire. |
zoned_time , classe |
Appairage d’un time_zone et d’une time_point précision spécifiée. |
Struct zoned_traits |
Utilisé pour associer un autre fuseau horaire par défaut à un zoned_time , et éventuellement mapper un nom personnalisé à ce fuseau horaire par défaut. |
Exceptions
Nom | Description |
---|---|
ambiguous_local_time |
Erreur levée lorsqu’une local_time valeur est convertie en un sys_time résultat et que le résultat est ambigu. |
nonexistent_local_time |
Erreur levée lorsqu’une local_time valeur est convertie en un sys_time et que le résultat est une heure qui n’existe pas. |
Functions
Nom | Description |
---|---|
ceil(duration) |
Retourne l’objet ceil duration sous la forme d’un type spécifié. |
ceil(time_point) |
Retourne l’objet ceil time_point sous la forme d’un type spécifié. |
clock_cast |
Convertit une horloge d’une time_point horloge en équivalent time_point pour une autre horloge. |
duration_cast |
Caste un objet duration en un type spécifié. |
floor(duration) |
Retourne l’objet floor duration sous la forme d’un type spécifié. |
floor(time_point) |
Retourne l’objet floor time_point sous la forme d’un type spécifié. |
from_stream() |
Analysez le flux d’entrée dans l’un std::chrono des types de temps ou d’intervalle tels que day , , month weekday , year , etc. à l’aide du format spécifié. |
get_leap_second_info |
Obtient un leap_second_info struct. |
is_am |
Indique si un hours objet est AM. |
is_pm |
Indique si un hours objet est PM. |
locate_zone |
Obtient un fuseau horaire spécifié. |
make12 |
Retourne un hours formulaire de 12 heures. |
make24 |
Retourne un hours formulaire de 24 heures. |
round(duration) |
Retourne un duration objet arrondi en tant que type spécifié. |
round(time_point) |
Retourne un time_point objet arrondi en tant que type spécifié. |
time_point_cast |
Caste un objet time_point en un type spécifié. |
Fuseau horaire associé
Nom | Description |
---|---|
current_zone |
Obtient le fuseau horaire actuel. |
get_tzdb |
Obtient la première entrée de base de données de fuseau horaire. |
get_tzdb_list |
Obtient la liste des entrées de base de données de fuseau horaire. |
reload_tzdb |
Obtient une entrée de base de données de fuseau horaire mise à jour. |
remote_version |
Recherche une entrée de base de données de fuseau horaire mise à jour. |
Opérateurs
Nom | Description |
---|---|
operator- |
Soustraire ou négation différents <chrono> objets. |
operator!= |
Opérateur d’inégalité utilisé avec différents <chrono> objets. |
operator modulo |
Opérateur pour opérations de modulo sur des objets duration . |
operator* |
Opérateur de multiplication pour les objets duration . |
operator/ |
Opérateur de division pour les objets duration . |
operator/ |
Fournit une syntaxe pour créer des dates de calendrier. |
operator+ |
Ajouter à différents <chrono> objets. |
operator< |
Détermine si différents <chrono> objets sont inférieurs à un autre. |
operator<= |
Détermine si différents <chrono> objets sont inférieurs ou égaux à un autre. |
operator== |
Détermine si différents <chrono> objets sont égaux les uns aux autres. |
operator> |
Détermine si différents <chrono> objets sont supérieurs à un autre. |
operator>= |
Détermine si différents <chrono> objets sont supérieurs ou égaux à un autre. |
Typedefs
Pour plus d’informations sur les types de ratios utilisés dans les typesdefs suivants, consultez <ratio>
.
Types pratiques duration
Nom | Description |
---|---|
typedef duration<long long, nano> nanoseconds; |
Synonyme d’un duration type qui a une période de graduation d’un milliardième (1/1 000 000 000) d’une seconde. |
typedef duration<long long, micro> microseconds; |
Synonyme d’un duration type qui a une période de graduation d’un millionième (1/1 000 000) d’une seconde. |
typedef duration<long long, milli> milliseconds; |
Synonyme d’un duration type qui a une période de graduation d’un millième (1/1 000) d’une seconde. |
typedef duration<long long> seconds; |
Synonyme d’un duration type qui a une période de graduation de 1 seconde. |
typedef duration<int, ratio<60>> minutes; |
Synonyme d’un duration type qui a une période de graduation de 1 minute. |
typedef duration<int, ratio<3600>> hours; |
Synonyme d’un duration type qui a une période de graduation de 1 heure. |
Types pratiques time_point
Nom | Description |
---|---|
file_time |
Synonyme de time_point<file_clock, Duration> . Représente un time_point pour un file_clock . Vous spécifiez , Duration par exemple, file_time<seconds> ft; . |
gps_seconds |
Synonyme d’un gps_time<seconds>; nombre de secondes, représenté par un time_point associé à un gps_clock . |
gps_time |
Synonyme de time_point<gps_clock, Duration> . Représente un time_point pour un gps_clock . Vous spécifiez , Duration par exemple, gps_time<milliseconds> gps; . |
local_days |
Synonyme de local_time<days> . Nombre de jours, représenté par un time_point fuseau horaire qui n’est associé à aucun fuseau horaire. |
local_seconds |
Synonyme de local_time<seconds> . |
local_time |
Synonyme de time_point<local_t, Duration> . Représente une time_point heure locale qui n’est pas encore associée à un fuseau horaire. Vous spécifiez , Duration par exemple, local_time<seconds> lt; . A local_time est une heure locale quelque part. Ce n’est pas l’heure locale actuelle de l’horloge de votre ordinateur. Uniquement lorsque vous associez un local_time point dans le temps à un time_zone point qui peut être converti en heure UTC ou à l’heure dans un fuseau horaire spécifique. |
sys_days |
Synonyme de sys_time<days> . Nombre de jours depuis l’époque du system_clock, représenté par un time_point associé à un system_clock . |
sys_seconds |
Synonyme de sys_time<seconds> . Nombre de secondes non bissextiles depuis l’époque de system_clock (1er janvier 1970 00:00:00 UTC), représenté par un time_point associé à un system_clock . |
sys_time |
Synonyme de time_point<system_clock, Duration> . Vous spécifiez , Duration par exemple, sys_time<seconds> st; . Représente un time_point retour à partir de system_clock::now() . Il représente l’heure Unix, qui correspond étroitement à l’heure UTC. |
tai_seconds |
Synonyme de tai_time<seconds> . Nombre de secondes, représenté par un time_point associé à un tai_clock . |
tai_time |
Synonyme de time_point<tai_clock, Duration> . Vous fournissez , Duration par exemple, tai_time<seconds> tt; . Représente un time_point pour un tai_clock . |
utc_seconds |
Synonyme de utc_time<seconds>; |
utc_time |
Synonyme de time_point<utc_clock, Duration> . Vous fournissez , Duration par exemple, utc_time<seconds> ut; . Représente un time_point pour un utc_clock . |
Caractéristiques de type
Nom | Description |
---|---|
clock_time_conversion |
Trait qui spécifie comment convertir une time_point horloge en une autre. |
is_clock | Vérifiez si un type est une horloge. |
treat_as_floating_point | Vérifiez si un duration peut être converti en un autre duration qui a une période de graduation différente. |
Littéraux
(C++11) L’en-tête <chrono>
définit les littéraux définis par l’utilisateur suivants que vous pouvez utiliser pour plus de commodité, de sécurité de type et de maintenance de votre code. Ces littéraux sont définis dans l’espace literals::chrono_literals
de noms inline et sont dans l’étendue lorsqu’ils std::chrono
se trouvent dans l’étendue.
Déclaration | Description |
---|---|
hours operator "" h(unsigned long long Val) |
Spécifie les heures comme valeur intégrale. |
duration<double, ratio<3600>> operator "" h(long double Val) |
Spécifie les heures comme valeur à virgule flottante. |
minutes (operator "" min)(unsigned long long Val) |
Spécifie les minutes comme valeur intégrale. |
duration<double, ratio<60>> (operator "" min)( long double Val) |
Spécifie les minutes comme valeur à virgule flottante. |
seconds operator "" s(unsigned long long Val) |
Spécifie les minutes comme valeur intégrale. |
duration<double> operator "" s(long double Val) |
Spécifie les secondes comme valeur à virgule flottante. |
milliseconds operator "" ms(unsigned long long Val) |
Spécifie les millisecondes comme valeur intégrale. |
duration<double, milli> operator "" ms(long double Val) |
Spécifie les millisecondes comme valeur à virgule flottante. |
microseconds operator "" us(unsigned long long Val) |
Spécifie les microsecondes comme valeur intégrale. |
duration<double, micro> operator "" us(long double Val) |
Spécifie les microsecondes comme valeur à virgule flottante. |
nanoseconds operator "" ns(unsigned long long Val) |
Spécifie les nanosecondes comme valeur intégrale. |
duration<double, nano> operator "" ns(long double Val) |
Spécifie les nanosecondes comme valeur à virgule flottante. |
Les exemples suivants montrent comment utiliser <chrono>
des littéraux :
constexpr auto day = 24h;
constexpr auto week = 24h* 7;
constexpr auto my_duration_unit = 108ms;