string.Format的计时器?

时间:2010-07-29 17:04:26

标签: c#

我有一个时间自动收报机事件,我想将其写入格式的标签(小时:分钟:秒00:00:00),它不会打印0值!当开始计算时,它显示为:: 1 ...怎么办?解决了,谢谢所有回复

private void timer_Tick(object sender, EventArgs e)
        {
            seconds++;
            if(seconds == 59)
            {
                minutes++;
                seconds = 0;
            }
            if(minutes == 59)
            {
                hours++;
                minutes = 0;
            }

            this.label1.Text = string.Format("{0:##}:{1:##}:{2:##}", hours, minutes, seconds);
        }

4 个答案:

答案 0 :(得分:5)

更好的方法是使用DateTime和TimeSpan对象。例如:

DataTime start = <set this somehow>

void timer_Tick(...)
{
   var elapsed = DateTime.Now - start;

   label1.Text = string.Format("{0:HH:mm:ss}", elapsed);
}

答案 1 :(得分:3)

尝试一个思考实验 - 将秒和分钟设置为58,然后浏览代码并查看会发生什么......

答案 2 :(得分:3)

最好是使用TimeSpan和DateTime,正如其他人所说的那样。但是,如果要继续使用当前方法,请将格式字符串更改为:

string.Format("{0:00}:{1:00}:{2:00}", hours, minutes, seconds)

00格式将导致始终打印两位数,甚至是零。

答案 3 :(得分:1)

使用 TimeSpan