2015-11-03 4 views
1

Во-первых, я не хочу использовать #include <ctime> и time(0); время (0); с ctime. Я хочу, если скажу, что время 10: 13: 40: 23 утра. Я получаю значение 23. Я некоторое время искал веб-сайт и не мог найти ничего, кроме ctime, но ctime - для системного времени в миллисекундах что значение действительно велико. Другим примером может быть 12: 56: 30: 192 PM, и я получаю значение 192. спасибо за любую помощь :).Как получить миллисекунды в C++?

+0

Это зависит от платформы. Какую платформу вы используете? –

+0

Windows 7. Также я использую компилятор minGW. – MrQandA

+1

Обратите внимание, что вы получите именно то, что вам нужно, если вы просто поменяете «1000» – BeyelerStudios

ответ

5

С C++ 11, используя библиотеку std :: chrono.

#include <iostream> 
#include <chrono> 

int main() 
{ 

    auto now = std::chrono::system_clock::now(); 

    std::chrono::milliseconds ms_since_epoch = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()); 
    std::chrono::seconds seconds_since_epoch = std::chrono::duration_cast<std::chrono::seconds>(now.time_since_epoch()); 

    std::cout << (ms_since_epoch - seconds_since_epoch).count() << std::endl; 

    return 0; 
} 

В считанные секунды, modulo 1000 сделал бы то же самое, что и вычитание секунд. В любом случае, учитывая, что эпоха каноническая (имеет 00 секунд и 000 в миллисекундах), эта часть действительно является фактическим миллисекундным измерением текущего момента.

+2

Это дает общее количество миллисекунд с эпохи. – Chad

+0

Да, исправлено это, спасибо. – Eran

Смежные вопросы