我有一个时间自动收报机事件,我想将其写入格式的标签(小时:分钟:秒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);
}
答案 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