Visual Basic - сброс в 00:00 - PullRequest
       16

Visual Basic - сброс в 00:00

0 голосов
/ 16 апреля 2011

У меня есть вопрос о сбросе метки каждую ночь в одно и то же время.

Что я имею в виду: 1. при запуске программы мой label.text = 750 каждый раз, когда кто-то нажимает кнопку, текст метки уменьшается на 1, так 750 +749 748 и т. Д.

но теперь я хочу, чтобы каждый день в 00:00 текст метки сбрасывался до 750.

это возможно ??

1 Ответ

0 голосов
/ 21 апреля 2011

Комментарий Джаведа Акрама правилен - ничего из этого не имеет значения, если программа не запускается в полночь.

Однако, для того, что вы на самом деле просили - сброс счетчика в полночь - подумайте о добавлении ТАЙМЕРА в ваш проект. Вам действительно нужен таймер, чтобы щелкать один раз в день (в полночь):

Private Sub SetInterval()
    ' Calculate how many milliseconds until the timer ticks again:
    ' Start by calculating the number of seconds between now and tomorrow.
    ' Multiply by 1000, then add 50 more -- this is to make sure that the
    ' timer runs 1/50 of a second AFTER midnight, so that we can
    ' re-calculate the interval again at that time.
    Timer1.Interval = CInt( _
        DateDiff(DateInterval.Second, Now, Today.AddDays(1)) * 1000 + 50)
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Timer1.Tick
    ' Reset the interval, so that we run again tomorrow at midnight.
    SetInterval()

    ' Now, reset your label
    Label1.Text = "750"    ' Or whatever else needs to happen to reset the count
End Sub

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


В почти полностью UN- заметке кто-нибудь знает, почему у класса Date есть функция AddMilliseconds, а у Microsoft.VisualBasic.DateInterval (и, следовательно, у функции DateDiff) нет миллисекунд? Это несимметрично.

...