powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обратный отсчёт
10 сообщений из 10, страница 1 из 1
Обратный отсчёт
    #38170908
avicena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде мелочь, а не могу найти - нужен обратный отсчёт на 5 минут - в формате "mm:ss" и выходом из процедуры когда время обнуляется - заранее спасибо.
...
Рейтинг: 0 / 0
Обратный отсчёт
    #38170950
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прописать в переменную текущее время + 5 минут (dateadd), запустить ежесекундный таймер, выводить в нем разницу между текущим временем и переменной (datediff) и выключить, когда она будет равна нулю.
...
Рейтинг: 0 / 0
Обратный отсчёт
    #38170987
avicena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А проще нельзя? Через -
Код: vbnet
1.
2.
timeLeft = timeLeft.AddSeconds(-1)
         Label2.Text = timeLeft.ToString("mm:ss")
...
Рейтинг: 0 / 0
Обратный отсчёт
    #38170992
avicena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А timeLeft - переменной - прописать сразу допустим - 05:00 - в формате минуты - секунды?
...
Рейтинг: 0 / 0
Обратный отсчёт
    #38171014
avicena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался
Код: vbnet
1.
2.
3.
 Private newDate As DateTime = DateAdd(DateInterval.Minute, 5, #12:00:00 AM#) 
 newDate = newDate.AddSeconds(-1)
        Label2.Text = newDate.ToString("mm:ss")
...
Рейтинг: 0 / 0
Обратный отсчёт
    #38171044
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avicena А проще нельзя?
То, что предлагаю я, правильней. Таймер не точен, если считать его срабатывания, то 60 * 5 срабатываний не будут равны пяти минутам, +/- может быть в пределах нескольких секунд. Если же сравнивать текущее время с заданным, то точность будет в пределах +/- пол-секунды.

avicena А timeLeft - переменной - прописать сразу допустим - 05:00 - в формате минуты - секунды?У типа времени нет формата, а конвертировать туда-сюда строку для вычитания из секунд единички, это худший вариант индусского быдлокода.
...
Рейтинг: 0 / 0
Обратный отсчёт
    #38171073
avicena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy, не хочу вступать в полемику по поводу индусов) , но Вы считаете, что так не правильно?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 Private newDate As DateTime = DateAdd(DateInterval.Minute, 5, #12:00:00 AM#)
 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If newDate > #12:00:00 AM# Then
            newDate = newDate.AddSeconds(-1)
            Label2.Text = newDate.ToString("mm:ss") & " seconds"
        Else
            Timer1.Stop()
            timeLabel.Text = "Time's up!"
            MessageBox.Show("You didn't finish in time.", "Sorry")
        End If
       End Sub
Private Sub StartButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartButton.Click
        Timer1.Start()
    End Sub
...
Рейтинг: 0 / 0
Обратный отсчёт
    #38171127
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avicenaне хочу вступать в полемику по поводу индусов"прописать переменной в формате" это форменная дичь и ахтунг, однако в коде этого нет, с этой точки зрения подход в коде правильный.

avicena Вы считаете, что так не правильно?Да. Я считаю, что правильно так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 Private newDate As DateTime = DateAdd(DateInterval.Minute, 5, Now)

 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If newDate > Now Then
        Dim iSecs as Integer = DateDiff(DateInterval.Second, newDate, Now)
        Label2.Text = (iSecs \ 60) & ":" & (iSecs Mod 60)
    Else
        Timer1.Stop()
        timeLabel.Text = "Time's up!"
        MessageBox.Show("You didn't finish in time.", "Sorry")
    End If
 End Sub
...
Рейтинг: 0 / 0
Обратный отсчёт
    #38171161
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: avicena, прошу в следующий раз вопросы по .NET задавать в соответствующем форуме
...
Рейтинг: 0 / 0
Обратный отсчёт
    #38171716
avicena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy, Спасибо. )
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обратный отсчёт
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]