(C++) Comment calculer le temps passé entre 2 dates
Résolu/Fermé
Alex_Dev_0698
Messages postés
32
Date d'inscription
dimanche 31 octobre 2021
Statut
Membre
Dernière intervention
2 décembre 2022
-
1 juil. 2022 à 19:18
Alex_Dev_0698 Messages postés 32 Date d'inscription dimanche 31 octobre 2021 Statut Membre Dernière intervention 2 décembre 2022 - 2 juil. 2022 à 12:46
Alex_Dev_0698 Messages postés 32 Date d'inscription dimanche 31 octobre 2021 Statut Membre Dernière intervention 2 décembre 2022 - 2 juil. 2022 à 12:46
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?
A voir également:
- (C++) Comment calculer le temps passé entre 2 dates
- Comment calculer la moyenne sur excel - Guide
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Blocage agriculteur carte en temps réel - Accueil - Transports & Cartes
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
2 réponses
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
2 juil. 2022 à 10:10
2 juil. 2022 à 10:10
Un
Tu parles de
Puis
time_t
ou un time_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 de
ctime()qui a dû te servir à convertir un
time_t
en une date sous forme de texte. Il te faut faire la conversion inverse pour retrouver le time_t
. Le problème est de retrouver tes année/mois/... puis de les convertir en time_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 );
Puis
std::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".
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
1 juil. 2022 à 20:40
1 juil. 2022 à 20:40
Bonjour,
En C++ ce qui permet de dater ce sont les
Mais comme tu parles de
En C++ ce qui permet de dater ce sont les
std::chrono::time_point. Pour trouver le temps écoulé entre 2
time_point
, il suffit d'en faire la différence.
Mais comme tu parles de
ctime()qui est une fonction du C. Tu peux aussi utiliser la fonction
difftime( time_t_de_fin, time_t_de_debut )qui te donnera directement le nombre de secondes écoulées entre 2
std::time_t.
Alex_Dev_0698
Messages postés
32
Date d'inscription
dimanche 31 octobre 2021
Statut
Membre
Dernière intervention
2 décembre 2022
1 juil. 2022 à 23:53
1 juil. 2022 à 23:53
Le problème avec
std::time_t, c'est qu'il ne donne pas de date précise, et je ne peut pas récupérer une variable de ce type dans mon fichier log. Sinon pour
std::chrono::time_point, il s'agirais juste de soustraire les deux dates?
2 juil. 2022 à 12:46