Je voudrais savoir si il existe un type de variable c++ qui peut �tre initialiser par un temps de type 1:2:3:5(h:min:s:ms) entrer par l'utilisateur
Version imprimable
Je voudrais savoir si il existe un type de variable c++ qui peut �tre initialiser par un temps de type 1:2:3:5(h:min:s:ms) entrer par l'utilisateur
Bonjour,
R�ponse courte : Non.
R�ponse longue : Il existe des types "d�di�s" � la manipulation du temps, comme clock_t ou time_t. Mais ces types sont en r�alit�s des typedefs de types builtins. Il est donc possible d'initialiser des variables de tels types en fonction de ce qu'entre l'utilisateur, mais pas sans parsing.
En C++11, oui ;)
Regarde <chrono>.
est ce qu'elle peut contenir le temps type h:min:s:ms
� ma connaissance, il n'existe pas de classe qui g�re tout �a directement.
Si tu utilises uniquement la biblioth�que standard, tu peux �crire ta propre classe qui sera compos�e de std::chrono::hours, std::chrono::minutes, std::chrono::seconds, std::chrono::milliseconds, std::chrono::microseconds, std::chrono::nanoseconds (par exemple).
Le C++ te propose des briques de base et ne t'impose aucun choix,
Question,
Combien de de temps s'est il ecoule entre le 31 decembre 2008 23:59:55 et le 1 janvier 2009 00:00:5 ? (oui il y a un piege)
Et il y a encore pleins de cas particuliers du meme acabit (N'oublie pas que la revolution d'octobre a eu lieu en novembre pour l'europe de l'ouest)
On peut aussi se poser une autre question, celle des facon de formater le temps, je ne suis pas sur que partout sur la planete on ecrive hh:mm:ss
Bref le compage de temps c'est un sacre bordel, et les besoins sont fortement en fonction des applications. Donc il y a des choix a faire, c'est donc a l'utilisateur de faire ces choix.
Bref il faut soit ecrire ta classe, soit utiliser une librairie toute faite.
Je connais pas (encore) std::chrono qui contiens surement des briques plus avancee que time_t mais il faut pas rever ca restera des briques.
chrono impl�mente tout de m�me 2 classes bien pratiques: duration et time_point.
Ce sont deux classes distinctes car ce sont des notions bien diff�rentes. D'ailleurs cet en-t�te vient de boost, de la lib date_time, qui est donc le r�sultat de longues ann�es d'utilisation, de modifications et d'am�liorations.
Je crois que le timesamp unix corrige les secondes intercalaires, donc la solution qu'on avait sur un projet ou il fallait etre en UTC et prendre en compte les secondes intercalaires
- Temps GPS (non corrige)
- Liste des secondes intercalaires codees en dur, et correction lorsqu'on convertit un temps GPS en temps UTC.
En sachant que le projet manipule
- Des dates comprise entre 1995 et (a la louche) 2025
- Les dates correspondent a une date de mesure, donc pas de probleme de futurs
- Chaque instrument est dote d'une horloge synchronisee sur le temps GPS
Ce n'est bien evidemment pas adapte a un projet qui doit gerer des dates futures, ou des dates a des periodes plus anciennes.
Mais pour le compage de jours sur de longue periode historique une methode similaire est utilisee on peut convertir en jours juliens
ce qui permet de compter le nombre de jours entre deux dates, sans ce soucier des notions de mois/semaines/ etc...