在C#倒计时的秒表

时间:2010-08-05 16:24:28

标签: c#

我通过谷歌搜索看到了它的变化,但我有一个带有计时器控件的窗体,三个文本框(小时,分钟,秒),根据点击的按钮,我想从2小时倒数。因此,单击textbox1(小时)后将为1,textBox2(分钟)将为59,textBox3(秒)将为59,并且它们将继续倒计时直到所有读取为0。

有没有人有一些代码要分享?

非常感谢。

5 个答案:

答案 0 :(得分:4)

您可以使用TimeSpan类。初始化为2小时。如果启动Timer,则获取当前计时器。然后使用Timer对象每秒刷新一次显示。只需获取当前时间。剩下的时间是:

TimeSpan剩余= twoHoursTimespan - (CurrentTime - StartTime);

答案 1 :(得分:3)

从TimeSpan中提取组件。单击按钮后立即记录当前时间和日期,并将其存储在变量中。然后,您的计时器应该每秒计算自开始时间以来的持续时间。

IE:DateTime result = DateTime.Now.Subtract(StartingTime);

然后,使用生成的TimeSpan的部分来填充字段。

IE:int Hour = result.Hour; (或类似的东西)。

附录:不要每秒手动倒计时,因为这可能导致倒计时不准确。

答案 2 :(得分:0)

本教程非常清楚地说明了您要实现的目标。

http://www.dreamincode.net/forums/topic/57482-countdown-timer/

它为您提供了从任何给定时间倒计时的选项,而不仅仅是2小时。当然,如果这是你唯一需要的,你可以把它设置为2小时。

答案 3 :(得分:0)

这是一个Cope Project article and project,它位于你想要的附近。如果您的需求灵活,甚至可以直接满足您的需求。

答案 4 :(得分:0)

很抱歉,这可能不是确切的答案,但您需要使用时间跨度来实现此目的。

DateTime now = DateTime.Now;

// get the time elapsed since we started the test
// start date was set somewhere else before this code is called
TimeSpan span = now - _startDate;

// format the time left
String timeleft = span.Hours > 0 ? String.Format( "Time Left - {0}:{1:D2}:{2:D2}", span.Hours, span.Minutes, span.Seconds ) : String.Format( "Time Left - {0:D2}:{1:D2}", span.Minutes, span.Seconds );