C#倒计时计时器跳过时间

Ada*_*son 0 c# string timer countdown countdowntimer

我在C#中有这个

private void counter_Tick(object sender, EventArgs e)
    {
        Time.Text = String.Format("{0:000}", Hour) + ":" + String.Format("{0:00}", Minute) + ":" + String.Format("{0:00}", Second);
        if (Second != 00)
        {
            Second = Second - 1;
        }
        else if (Minute != 00)
        {
            Minute = Minute - 1;
            Second = 59;
        }
        else if (Hour != 00)
        {
            Hour = Hour - 1;
            Minute = 59;
        }
        else
        {
            counter.Stop();
            Time.ForeColor = Color.Red;
        }
    }
Run Code Online (Sandbox Code Playgroud)

哪个可以工作,但是当它增加到零下一个小时添加到分钟时,它从00分钟变为58分钟而不是59分钟

例如.

From: 001:00:00
To:   000:58:59
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法让倒数计时器在点击000:00:00时做某事?

小智 10

好吧,让我们看看时间到了会发生什么10:00:00.

  1. 减去一小时:09:00:00.
  2. 将分钟设置为59 : 09:59:00.

如果你发现时间已经过了一分钟(10:00:00 - 09:59:00 = 00:01:00).解决方案是将秒数设置为59.所以现在我们的代码是.

// ...
else if (Hour != 00)
{
    Hour = Hour - 1;
    Minute = 59;
    Second = 59;
}
// ...
Run Code Online (Sandbox Code Playgroud)