Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.85
breate
56 / 56 / 2
Регистрация: 23.10.2009
Сообщений: 250
#1

Системное время - C++

28.02.2010, 18:28. Просмотров 4677. Ответов 4
Метки нет (Все метки)

как взять системное время в милисикундах?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2010, 18:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Системное время (C++):

Ввести время и от него отнять системное время - C++
Необходимо ввести время и от него отнять системное время,необходимо сделать так Введите часы : 17 минуты : 00 и результат к примеру...

Системное время в файл - C++
Я пишу в файл file_log, но хочу добавить к строке миллисекунды, чтобы строка в файле выглядела так: элемент / миллисекунды Время я...

Получить системное время - C++
здравствуйте. как/с помощью какой функции можно полям своей структуры присвоить значения, соответствующих системным дате и времени?

Как получить системное время и дату? - C++
В поиске искал и не нашел. Вопрос, значит, такой: Есть у меня допустим класс t_and_d и в него входят 2 переменные. в одну необходимо...

Выполнение функции в определенное системное время - C++
Привет. Как реализовать вызов функции, в строго определенные моменты времени? Конкретнее: вызывать функцию каждую секунду. Синхронно с...

Как в программе можно изменить системное время компьютера? - C++
Как в программе можно изменить системное время компьютера?

4
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
28.02.2010, 18:58 #2
Что значит системное? В Windows для получения текущих даты и времени есть GetLocalTime, GetSystemTime, они дают дату и время с точностью до миллисекунд в виде полей. Если тебе нужно единое число, возьми за основу алгоритмы перевода в юлианскую дату (Julian Date, JD).
Количество миллисекунд, прошедших с момента запуска компьютера, возвращает GetTickCount.

Добавлено через 1 минуту
Забыл упомянуть: GetLocalTime возвращает местное время с учётом часового пояса и зимнего/летнего времени, а GetSystemTime - гринвичское.
0
breate
56 / 56 / 2
Регистрация: 23.10.2009
Сообщений: 250
28.02.2010, 20:06  [ТС] #3
я хочу посмотреть скорость работы своего кода в милисекундах
0
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
28.02.2010, 20:32 #4
Тогда проще всего замерять разность между показаниями GetTickCount. Если нужна точность повыше, то надо смотреть в сторону GetHighPerformanceCounter - он измеряет в тактах процессора.
0
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
28.02.2010, 20:42 #5
Для получения времени выполнения алгоритма в Windows, используй GetThreadTimes, пример ниже:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
_int64 FileTimeToQuadWord(PFILETIME pft)
{
    return(Int64ShllMod32(pft->dwHighDateTime, 32) | pft->dwLowDateTime);
}
 
void PerformLongOperation ()
{
    FILETIME ftKernelTimeStart, ftKernelTimeEnd; 
    FILETIME ftUserTimeStart, ftUserTimeEnd; 
    FILETIME ftDummy;
 
    _int64 qwKernelTimeElapsed, qwUserTimeElapsed, qwTotalTimeElapsed;
 
    // получаем начальные показатели времени 
    GetThreadTimes(GetCurrentThread(), &ftDummy, &ftDummy,
                   &ftKernelTimeStart, &ftUserTimeStart);
 
    // здесь выполняем сложный алгоритм 
 
    // получаем конечные показатели времени
    GetThreadTimes(GetCurrentThread(), &ftDummy, &ftDummy,
                   &ftKernelTimeEnd, &ftUserTimeEnd);
 
    // получаем значении времени, затраченного на выполнение ядра и User, 
    // преобразуя начальные и конечные показатели времени из FILETIME 
    // в учетверенные слова, а затем вычитая начальные показатели из конечных 
    qwKernelTimeElapsed = FileTimeToQuadWord(&ftKernelTimeEnd) -
                          FileTimeToQuadWord(&ftKernelTimeStart);
 
    qwUserTimeElapsed = FileTimeToQuadWord(&ftUserTimeEnd) -
                        FileTimeToQuadWord(&ftUserTimeStart);
 
    // получаем общее время, складывая время выполнения ядра и User 
    qwTotalTimeElapsed = qwKernelTimeElapsed + qwUserTimeElapsed;
 
    // общее время хранится в qwTotalTimeElapsed
 
}
qwTotalTimeElapsed - время, выраженное в интервалах по 100 нс.
2
28.02.2010, 20:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2010, 20:42
Привет! Вот еще темы с ответами:

Программа подачи компьютеру сигнала shutdown в определенное системное время - C++
Доброго времени суток) Прошу помощи в написании маленькой программки. Программа должна подавать ПК сигнал shutdown в определенное...

Системное программирование - C++
Давно интересует меня такой вопрос, имею книгу "Системное программирование в Windows" (автор Александр Побегайло). Хотелось бы услышать...

Системное программирование - C++
Всем привет. Где можно найти все ф-ий по С и их краткое описание под Линукс. Что то похожее на man . Подскажите пожалуйста, может...

предмет системное ПО - C++
нужно изучить эти направления. Списка литературы нет. 1. Многопоточное программирование (основные принципы создания многопоточных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru