2017-10-07 77 views
-1

试图显示一个运行时间,它将显示HH:MM:SS到目前为止,我得到了SS部分的工作。但是,一旦它进入60它将跳回00定时器在标签上显示HH:MM:SS

我走到这一步的代码是:

DateTime startTime; 
startTime = DateTime.Now; 
timer1.Tick += (s, ev) => { lb_runnerStatus.Text = String.Format("{0:00}", (DateTime.Now - startTime).Seconds); }; 
startTime = DateTime.Now; 
timer1.Interval = 100;  // every 1/10 of a second 
timer1.Start(); 

是否有可能得到它显示00:00:01,当其在1分钟00:01:00等等。

+0

HTTPS://codereview.stackex change.com/questions/24995/convert-timespan-to-readable-text告诉你如何实现这一目标。 – mjwills

+0

不知道为什么下面接受的答案更好地适合我的需要只是一行代码而不是很多。 –

回答

3

你可以简单地调用.ToString()TimeSpan实例方法,它会在HH返回string:MM:SS格式:

lb_runnerStatus.Text = (DateTime.Now - startTime).ToString(); 

如果您需要更先进的格式,使用.ToString(string format)超载,在那里你可以指定所需的格式或者与Standard TimeSpan FormatCustom TimeSpan Format,例如以下将包括毫秒:

lb_runnerStatus.Text = (DateTime.Now - startTime).ToString("hh\\:mm\\:ss\\.fff"); 
+0

完美的作品!谢谢 –