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

时间:2011-04-18 21:49:44

标签: c# stopwatch

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

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"
);

我该怎么办?

7 个答案:

答案 0 :(得分:67)

您应该使用:

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"))

答案 1 :(得分:18)

.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

如果你想要可靠地显示总分和秒,你必须自己做数学。

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);

答案 2 :(得分:10)

我用这种方式编码:

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);

答案 3 :(得分:7)

查看stopwatch.ElapsedMinutes返回的结构。您需要TotalMinutests.Minutes属性。

如果您测量的是62分钟,2将返回ts.TotalMinutes62将返回{{1}}。

答案 4 :(得分:5)

//试试

 <script>
  $(document).ready(function() {
   {% for entreprise in entreprises %}
        addMarker('{{ entreprise.latitude }}','{{ entreprise.longitude }}','{{ entreprise.nom}}')
   {% endfor %} 
  });
</script>

答案 5 :(得分:0)

ts.Minutes

答案 6 :(得分:0)

TimeTakenOutput.Text = "0" + myStopWatch.Elapsed.Minutes.ToString() 
 + ":" + myStopWatch.Elapsed.Seconds.ToString() + "mins";