Analyse des chaînes de date avec C 11 std::chrono
Lorsque vous travaillez avec des informations de date et d'heure, il est souvent nécessaire d'analyser une chaîne de date dans une représentation de données appropriée. Pour C 11, l'espace de noms std::chrono fournit des outils puissants pour gérer les durées et les points temporels.
Analyse des chaînes de date
Pour analyser une chaîne de date en std : :chrono, GCC fournit la fonction std::get_time. Étant donné un objet std::tm et une chaîne de format, std::get_time peut extraire les composants de date et d'heure de la chaîne d'entrée. L'extrait de code suivant le démontre :
std::tm tm = {}; std::stringstream ss("Jan 9 2014 12:35:34"); ss >> std::get_time(&tm, "%b %d %Y %H:%M:%S");
Les versions de GCC antérieures à 5 n'implémentent pas std::get_time. Comme alternative, vous pouvez utiliser strptime :
std::tm tm = {}; strptime("Thu Jan 9 2014 12:35:34", "%a %b %d %Y %H:%M:%S", &tm);
Calcul du temps écoulé
Une fois que vous avez la date et l'heure analysées dans un objet std::tm, vous peut le convertir en time_point en utilisant std::chrono::system_clock::from_time_t:
auto tp = std::chrono::system_clock::from_time_t(std::mktime(&tm));
Ce time_point représente la date et l'heure analysées dans le fuseau horaire actuel. Pour calculer le temps écoulé depuis la date analysée, soustrayez le point_temporel actuel du point_temporel analysé :
auto now = std::chrono::system_clock::now(); auto elapsed = now - tp;
Accès aux composants temporels
Le std::chrono:: L'objet de durée donne accès aux composants de temps écoulé. Pour récupérer le nombre de secondes, de minutes, d'heures et de jours, utilisez les fonctions suivantes :
auto seconds = std::chrono::duration_cast<std::chrono::seconds>(elapsed).count(); auto minutes = std::chrono::duration_cast<std::chrono::minutes>(elapsed).count(); auto hours = std::chrono::duration_cast<std::chrono::hours>(elapsed).count(); auto days = std::chrono::duration_cast<std::chrono::days>(elapsed).count();
En utilisant ces techniques, vous pouvez analyser efficacement les chaînes de date en points de temps std::chrono et calculer le temps écoulé. temps depuis la date analysée, donnant accès aux composants temporels souhaités de manière pratique et efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!