TIMER NOT DETECTING WHEN INPUT MATCHES DATETIME.NOW

Royce Roy

Total Post:149

Points:1043
Posted by  Royce Roy
C# 
C#
 930  View(s)
Ratings:
Rate this:

I have a timer on my form with an interval of 1000 (1 second). I am allowing the user to input a time via three comboboxes. The time they input is then converted to the DateTime format. Finally, the timer checks every tick if the input time equals DateTime.Now. The problem is that it's not working.

Say I set the alarm to 9:00:00 PM when it's 8:59:50 PM. I click Start and wait ten seconds for the alarm to go off, but it never does. When debugging the code, both numbers are the same, meaning that it should fire, but it doesn't.

Here's my code:

private void tmrAlarm_Tick(object sender, EventArgs e) {

    DateTime alarmTime = Convert.ToDateTime(statusAlarm.Text); // say statusAlarm.Text is 9:00:00 PM

    if(alarmTime == DateTime.Now) {

        MessageBox.Show("bzzt");

    }

}

  1. Pravesh Singh

    Post:412

    Points:2888
    Re: Timer not detecting when input matches DateTime.Now

    Hi Royce,

    You could also use

    DateTime.Now.ToShortTimeString() method for checking equality

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!