секундомер

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

секундомер

Сообщение DVV » 08.10.2004 (Пт) 21:08

If milisec > 99 Then Sec = Sec + 1
If milisec > 99 Then milisec = 0
If Sec > 59 Then Min = Min + 1
If Sec > 59 Then Sec = 0
If Min > 59 Then Hour = Hour + 1
If Min > 59 Then Min = 0
If Hour > 23 Then Hour = 0
Здесь всё правильно?
Vadim

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.10.2004 (Пт) 21:48

Нет. Миллисекунд в секунде 1000, а не 100.
А зачем два раза повторять одни и те же сравнения, я не знаю.
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Re: секундомер

Сообщение Ruslan Demidow » 08.10.2004 (Пт) 22:05

DVV писал(а):If milisec > 99 Then Sec = Sec + 1
If milisec > 99 Then milisec = 0
===============
If Min > 59 Then Min = 0
If Hour > 23 Then Hour = 0
Здесь всё правильно?

Код: Выделить всё
If milisec > 999 Then
    Sec = Sec + 1
    milisec = 0
    If Sec > 59 Then
        Min = Min + 1
        Sec = 0
        If Min > 59 Then
            Hour = Hour + 1
            Min = 0
        End If
    End If
End If
If Hour > 23 Then Hour = 0
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: секундомер

Сообщение tyomitch » 08.10.2004 (Пт) 23:25

Ruslan Demidow писал(а):
Код: Выделить всё
If milisec > 999 Then
    Sec = Sec + 1
    milisec = 0
    If Sec > 59 Then
        Min = Min + 1
        Sec = 0
        If Min > 59 Then
            Hour = Hour + 1
            Min = 0
        End If
    End If
End If
If Hour > 23 Then Hour = 0

Правильно, но как-то непоследовательно. Почему не так?
Код: Выделить всё
If milisec > 999 Then
    Sec = Sec + 1
    milisec = 0
    If Sec > 59 Then
        Min = Min + 1
        Sec = 0
        If Min > 59 Then
            Hour = Hour + 1
            Min = 0
            If Hour > 23 Then Hour = 0
        End If
    End If
End If
Изображение

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 09.10.2004 (Сб) 10:47

Мда, не подумал: в твоём коде проверка количества часов происходит только при превышении количества минут, а у меня всегда.
Твой код более логичен. :)
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 09.10.2004 (Сб) 20:58

А таймер тогда с каким интервалом?
Vadim

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 09.10.2004 (Сб) 22:40

Я бы поставил меньше секунды (т.е. меньше 1000).
Объясню почему - если у меня программа ресурсоёмкая и время отображается постоянно, тем более меняющееся (например вывод секунд), тогда при порядочной загрузке, могут наблюдаться визуальные подтормаживания отображения времени, имхо. Не знаю правда влияет ли загрузка программой процессора на таймер.
Может Тёмыч подскажет?
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 10.10.2004 (Вс) 0:16

Но милисек. намного меньше секунды!
Vadim

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 10.10.2004 (Вс) 1:32

Ровно на одну тысячу.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

DVV
Бывалый
Бывалый
 
Сообщения: 212
Зарегистрирован: 02.09.2004 (Чт) 21:03
Откуда: Уфа

Сообщение DVV » 10.10.2004 (Вс) 20:51

Да!
Так сколько?(интервал)
Vadim

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.10.2004 (Вс) 21:19

Сколько ни поставишь, гарантии, что таймер будет срабатывать именно через такое время (и что вообще через равные промежутки времени), у тебя нет.
Изображение

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 14.10.2004 (Чт) 21:33

ну а если связать все с изменение системного времени?? там то секунды точно тикуют...
This message will self destruct in five seconds!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.10.2004 (Пт) 9:11

А нельзя ли использовать Format$(Time,"hh:mm:ss") & Mid$(Format$((Timer-Fix(Timer)),"0.000"),2)?
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.10.2004 (Пт) 9:13

А тогда зачем весь этот геморрой? Почему нельзя просто читать системное время?

[edit]alibek, я именно про это... Разве что значение Timer может и измениться между двумя вызовами ;-) - так могут и отрицательные миллисекунды получится...[/edit]
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.10.2004 (Пт) 9:19

Дык :) Ни Windows, ни VB никогда и не позиционировались, как системы реального времени :)
В таком случае надо переменные заводить, где будут запоминаться Time и Timer. Мне просто не хотелось в две строки лепить.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.10.2004 (Пт) 9:40

alibek писал(а):Мне просто не хотелось в две строки лепить.

А, знакомо... :-)
Посмотри http://groups.google.com/groups?selm=16 ... put=gplain - я писал в дну строку получение аптайма системы в днях, часах, минутах и секундах :-)
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList  
cron