如何用秒表(秒)显示分钟和秒

我还需要显示分钟,实际上我使用这个代码来显示秒数,但也需要分钟

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返回的结构。 您需要MinutesTotalMinutes属性。

如果你测量一个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