如何用秒表(秒)显示分钟和秒
我还需要显示分钟,实际上我使用这个代码来显示秒数,但也需要分钟
TimeSpan ts = stopwatch.Elapsed; Console.WriteLine("File Generated: " + _writer.getBinaryFileName(filePath, Convert.ToInt32(logSelected)) + " in " + "{0}.{1:D2}" + "seconds", ts.Seconds, ts.Milliseconds/10 + "\n" );
我能怎么做?
你应该使用:
ts.ToString("mm\\:ss\\.ff")
这会在一段时间内给你几分钟,几秒钟和百分之一秒的时间。
也看看http://msdn.microsoft.com/en-us/library/ee372287.aspx
编辑:好,如果你想分钟是你最大的单位,你可以做以下几点:
string.Format("{0}:{1}", Math.Floor(ts.TotalMinutes), ts.ToString("ss\\.ff"))
.NET 4.0中的TimeSpan.ToString()方法有一个重载,允许您指定格式。
要显示分钟和秒钟:
TimeSpan elapsed = GetElapsedTime(); // however you get the amount of time elapsed string tsOut = elapsed.ToString(@"m\:ss");
要包含毫秒,你会写:
string tsOut = elapsed.ToString(@"m\:ss\.ff");
但请注意,如果总时间超过60分钟,则不会达到您所期望的效果。 显示的“分钟”值将会elapsed.Minutes
。分钟,基本上与((int)elapsed.TotalMinutes) % 60)
。 所以如果总时间是70分钟,上面会显示10:00
。
如果您想要可靠地显示总分钟数和秒数,则必须自己进行math计算。
int minutes = (int)elapsed.TotalMinutes; double fsec = 60 * (elapsed.TotalMinutes - minutes); int sec = (int)fsec; int ms = 1000 * (fsec - sec); string tsOut = String.Format("{0}:{1:D2}.{2}", minutes, sec, ms);
查看TimeSpan
的文档, TimeSpan
返回的结构。 您需要Minutes
或TotalMinutes
属性。
如果你测量一个62分钟的时间, ts.Minutes
将返回2
,而ts.TotalMinutes
将返回62
。
我这样编码:
using System.Diagnostics; ... Stopwatch watch = new Stopwatch(); watch.Start(); // here the complex program. ... watch.Stop(); TimeSpan timeSpan = watch.Elapsed; Console.WriteLine("Time: {0}h {1}m {2}s {3}ms", timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds, timeSpan.Milliseconds);
//尝试一下
Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(10382); sw.Stop(); Console.Write(sw.Elapsed.Duration());
TimeTakenOutput.Text = "0" + myStopWatch.Elapsed.Minutes.ToString() + ":" + myStopWatch.Elapsed.Seconds.ToString() + "mins";
ts.Minutes