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
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.
Partager