7
votes

Comment obtenir le temps en millisecondes en C ++

en Java, vous pouvez le faire:

long now = (new Date()).getTime();


2 commentaires

Vérifiez ce fil (c'est des nanosecondes, mais je suppose que cela pourrait être converti en millisecondes aussi) Stackoverflow.com/Questtions/275004/...


En Java, vous devez utiliser System.CurrentTtimemillis () .


7 Réponses :


6
votes

J'aime avoir une fonction appelée time_ms définie comme telle: xxx

La mise en œuvre ci-dessous doit fonctionner sous Windows ainsi que des systèmes de type UNIX. xxx

Notez que le temps renvoyé par la branche Windows est millisecondes depuis le démarrage du système, tandis que le temps renvoyé par la branche UNIX est millisecondes depuis 1970. Ainsi, si vous utilisez ce code, Ne comptez que sur les différences entre les temps, pas le temps absolu lui-même.


3 commentaires

TimegeTime retourne l'heure depuis le début des fenêtres, pas les millisecondes depuis l'époque.


Vous pouvez utiliser un peu de mathématiques et getSystemTimeasfileTime sous Windows ( msdn.microsoft.com/en-us/Library/ms724397%28v=VS.85%29.aspx ). Personnellement, j'aime microsec_clock :: local_time () - tout le travail difficile a déjà été fait :-)


Pouvez-vous modifier le commentaire ci-dessus du prototype TIME_MS ?



9
votes

Il n'y a pas de méthode de ce type en standard C ++ (en standard C ++, il n'y a qu'une seconde précision, pas milliseconde). Vous pouvez le faire sous des manières non portables, mais que vous ne précisez pas, je suppose que vous voulez une solution portable. Votre meilleur pari, je dirais, est la fonction de boost Microsec_Clock :: local_time () .


0 commentaires

0
votes

Boost a une bibliothèque utile pour ce faire:

http://www.boost.org/doc /Libs/1_43_0/doc/html/date_time.html

PT0 Microsec_Clock :: local_time () ou pTonne second_clock :: local_time ()


0 commentaires

12
votes

Parce que c ++ 0x est génial xxx

Cela fonctionne avec GCC 4.4+. Compiler avec - std = c ++ 0x . Je ne sais pas si vs2010 implémente std :: chrono .


4 commentaires

Durée_cast Vous ouvrez un modèle deux fois, mais vous le fermez une fois ...


Votre durée_cast devrait être: "Auto millis = SC :: Durée_cast (Depuis_epoch);"


Ce retour 1434479941518 sur mon système qui est SAT, 11 nov. 47426 02:25:18 GMT . Pourquoi cela arrive-t-il?


Au moins, cela devrait être "long maintenant" ou vous obtiendrez une valeur négative.



3
votes

standard C ++ n'a pas de fonction de temps avec la précision de la sous-seconde.

Cependant, presque tous les systèmes d'exploitation font. Donc, vous devez écrire du code dépendant du système d'exploitation.

win32:
GetSystemTime () < / code>
GetSystemTimeasFileTime () < / code>

Unix / POSIX:
GetTimeOdday ()
clock_gettime ()


0 commentaires

4
votes

Vous pouvez essayer ce code (obtenir du code source de moteur de poisson-échecs (GPL)): xxx


1 commentaires

Curieux de long long - est-ce une faute typographique ou intentionnelle?



-2
votes

java: xxx

C ++: xxx


0 commentaires