Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
3 / 3 / 0
Регистрация: 02.10.2014
Сообщений: 68
1

Можно ли вывести текущее время с точностью до миллисекунд?

06.10.2014, 17:17. Просмотров 4103. Ответов 4
Метки нет (Все метки)


Всем привет!

Можно ли в VB6 вывести текущее время с точностью до миллисекунд?

Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2014, 17:17
Ответы с готовыми решениями:

Текущее время с точностью до миллисекунд
Здравствуйте! Столкнулся со следующей проблемой. Нужно узнать текущее время с точностью до...

Время с точностью до миллисекунд
Как получить время до миллисекунд. Time() и Now().CurrentTime выводят только до секунд. Для просто...

Время запуска/конца выполнения программы с точностью до миллисекунд
С. как сделать чтобы в начале программы выводилась дата и время с миллисекундами и тоже самое при...

Вывести текущее время в формате ЧЧ:ММ:СС
я хочу из time(0), получить время (ЧЧ:ММ:СС). что я делаю не так? или есть более лёгкий способ его...

4
Модератор
8376 / 3147 / 823
Регистрация: 22.02.2013
Сообщений: 4,616
Записей в блоге: 78
06.10.2014, 17:51 2
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Visual Basic
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
Option Explicit
 
Private Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMilliseconds As Integer
End Type
 
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
 
Private Sub Form_Load()
    Me.Show
    PrintTime
End Sub
 
Private Sub PrintTime()
    Dim t As SYSTEMTIME
    
    Do While True
        GetLocalTime t
        Caption = t.wHour & ":" & t.wMinute & ":" & t.wSecond & "." & t.wMilliseconds
        DoEvents
    Loop
End Sub
2
1 / 2 / 0
Регистрация: 06.08.2016
Сообщений: 7
09.10.2018, 20:56 3
Не-а. Там будет давать с точностью до милисекунд раз по 10-20 одинаково, затем сменит значение и опять. Погрешность получается иногда до десятьіх секундьі
0
15015 / 6343 / 1725
Регистрация: 24.09.2011
Сообщений: 9,976
10.10.2018, 22:49 4
Когда-то на другом форуме сравнивали разные виндовские таймеры на предмет разрешающей способности. Вот программа
Visual Basic
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
Declare Function timeGetTime Lib "winmm.dll" () As Long
Declare Function GetTickCount Lib "kernel32" () As Long
Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
 
Sub dd()
Dim endTime!, cLoops&
Dim cTimer&, oldTimer!, newTimer!
Dim cTick&, oldTick&, newTick&
Dim cGT&, oldGT&, newGT&
Dim cPC&, oldPC@, newPC@
 
endTime = Timer + 1
While Timer < endTime
    newTimer = Timer
    If newTimer > oldTimer Then oldTimer = newTimer: cTimer = cTimer + 1
    newTick = GetTickCount
    If newTick > oldTick Then oldTick = newTick: cTick = cTick + 1
    newGT = timeGetTime
    If newGT > oldGT Then oldGT = newGT: cGT = cGT + 1
    QueryPerformanceCounter newPC
    If newPC > oldPC Then oldPC = newPC: cPC = cPC + 1
    cLoops = cLoops + 1
Wend
Debug.Print "Число циклов", cLoops
Debug.Print "Timer", cTimer
Debug.Print "GetTickCount", cTick
Debug.Print "timeGetTime", cGT
Debug.Print "QueryPerf.", cPC
 
End Sub
Здесь подсчитывается, сколько раз в течение 1 секунды изменилось число, возвращаемое разными функциями для измерения времени.
Результаты в VBA на разных компьютерах с разными ОС.
Код
P3-500, Win2k
Число циклов   127719 
Timer          100 
GetTickCount   100 
timeGetTime    100 
QueryPerf.     127719

WinXP, Core 2 Duo 1.6 ГГц
Число циклов   362059 
Timer          64 
GetTickCount   64 
timeGetTime    997 
QueryPerf.     362059

Win7(32), AMD II X2 245 2.9 ГГц
Число циклов   1534403 
Timer          256 
GetTickCount   65 
timeGetTime    998 
QueryPerf.     1534403

WinXP P4 2.80GHz, XL2003
Число циклов   530485 
Timer          64 
GetTickCount   64 
timeGetTime    65 
QueryPerf.     530485

WinXP (Core 2 Duo E8400 3.0 ГГц)
Число циклов   1791993 
Timer          64 
GetTickCount   65 
timeGetTime    989 
QueryPerf.     1791993
Функция timeGetTime на большинстве систем "тикает" 1000 раз в секунду, но на некоторых системах 64 или 100 раз в секунду.
Добавил в код GetLocalTime - получил 64 раза в секунду.
Получается, что единственным надежным вариантом остается QueryPerformanceCounter (QPC) - можно поймать момент изменения одной из упомянутых функций или Now, зафиксировать время и значение QPC и дальше высчитывать время по разности текущего и сохраненного значения QPC.
2
Модератор
8376 / 3147 / 823
Регистрация: 22.02.2013
Сообщений: 4,616
Записей в блоге: 78
10.10.2018, 22:57 5
Цитата Сообщение от Казанский Посмотреть сообщение
Функция timeGetTime на большинстве систем "тикает" 1000 раз в секунду, но на некоторых системах 64 или 100 раз в секунду.
Она тикает с частотой мультимедийного таймера заданной timeBeginPeriod (глобально).
3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2018, 22:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Вывести текущее время и текущую дату
создать программу, которая выводит текущее время и текущую дату. var DateTime : TdateTime;...

Как получить текущее Текущее Unix epoch время в милисекундах?
Хочу получить через эксель выписку егрюл egrul.nalog.ru Общий порядок такой: 1) Отправляю ПОСТ...

Как в Java ME вывести на экран текущее время?
Пробовал через класс DateField, но там нужно выставлять самому дату и время, а мне нужно что-бы он...

Вывести в консоль текущее время с заданным интервалом
Всем доброго времени суток, начал изучать bash скрипты и не могу решить задачку с следующими...

Вывести текущее время в верхнем левом углу экрана
Вывести текущее время в верхнем левом углу экрана. Помогите плиз. Нужен код программы на...

Вывести на экран название текущего месяца и текущее время
Никак не могу разобраться((( помогите, пожалуйста declare @d datetime declare @dd char='15'...


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

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

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