TimeSpan 倒数计时器

TimeSpan countdown timer

我正在尝试在我的应用程序中显示倒计时:

private TimeSpan ts = new TimeSpan()


ts = ts.Subtract(TimeSpan.FromSeconds(1));
label4.Text = ts.ToString(@"hh\:mm\:ss");

但是,它不显示倒计时,但时间实际上增加了。如果我删除 @"hh\:mm\:ss" 部分,那么我会在几秒钟内得到倒计时,但不是真正的倒计时。它所做的只是在秒之前添加一个减号,所以它会 -1, -2, -3, 等...我希望它从 10 to 0 so -9, -8, -7, 等开始说...

我怎样才能以hh:mm:ss的形式进行真正的倒计时?

将ts初始化为10:(您当前正在将其初始化为0并递减)

private TimeSpan ts = TimeSpan.FromSeconds(10)
...
ts = ts.Subtract(TimeSpan.FromSeconds(1));
label4.Text = ts.ToString(@"hh\:mm\:ss");

您的代码总是从 0 秒时间跨度中减去 1 秒时间跨度。

也许您正在寻找这样的东西:

public string PrettyTimespan(DateTime finalDate)
{
  return (finalDate - DateTime.Now).ToString(@"hh\:mm\:ss");
}