(C++) Comment calculer le temps passé entre 2 dates
Résolu
Alex_Dev_0698
Messages postés
39
Statut
Membre
-
Alex_Dev_0698 Messages postés 39 Statut Membre -
Alex_Dev_0698 Messages postés 39 Statut Membre -
Bonjour, je suis en train de créer un jeu et je voudrais intégrer un système de récompense journalière. Pour ca je doit trouver le temps écoulé depuis la dernière connexion au jeu. J'ai réussis à créer un système de log où il est écrit la date et l'heure des dernières connexions, mais je ne sais pas comment trouver le temps écouler avec ca. Y a-t-il une fonction avec ctime ou un autre module qui pourrais faire cela?
2 réponses
-
Un
time_t
ou untime_point
ça permet de gérer un point précis dans le temps. Une date c'est la même chose en plus imprécis et dans une notation compréhensible par l'humain en séparant année/mois/jour.
Tu parles dectime()
qui a dû te servir à convertir untime_t
en une date sous forme de texte. Il te faut faire la conversion inverse pour retrouver letime_t
. Le problème est de retrouver tes année/mois/... puis de les convertir entime_t
.std::tm tm{0}; // initialisé à zéro tm.tm_year = annee-1900; tm.tm_mon = mois-1; tm.tm_mday = jour; tm.tm_hour = heure; tm.tm_min = minutes; tm.tm_sec = secondes; std::time_t date_sous_forme_d_un_time_t = std::mktime( &tm );
Puisstd::difftime(,)
te donnera le nombre de secondes écoulées entre tes 2 time_t, à toi de mettre ces secondes sous une forme compréhensible par exemple "heure:minutes:secondes". -
Bonjour,
En C++ ce qui permet de dater ce sont lesstd::chrono::time_point
. Pour trouver le temps écoulé entre 2time_point
, il suffit d'en faire la différence.
Mais comme tu parles dectime()
qui est une fonction du C. Tu peux aussi utiliser la fonctiondifftime( time_t_de_fin, time_t_de_debut )
qui te donnera directement le nombre de secondes écoulées entre 2std::time_t
.