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

本文关键字:显示 分钟 何使用 | 更新日期: 2023-09-27 17:50:43

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

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 .

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

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

我是这样编码的:

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

//try it

       Stopwatch sw = new Stopwatch();
        sw.Start();
        Thread.Sleep(10382);
        sw.Stop();

        Console.Write(sw.Elapsed.Duration());

查看文档以了解TimeSpanstopwatch.Elapsed返回的结构。您需要 MinutesTotalMinutes 属性。

如果您测量的是 62 分钟的跨度,ts.Minutes 将返回2ts.TotalMinutes将返回62

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