How show minutes and seconds with Stopwatch()

你离开我真会死。 提交于 2019-12-03 05:23:52

问题


I need to show also the minutes, actually I use this code for show the seconds, but also need the minutes

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

how can I do?


回答1:


You should use:

ts.ToString("mm\\:ss\\.ff")

this will give you minutes, seconds and the hundredths of a second in a time interval.

also take a look at http://msdn.microsoft.com/en-us/library/ee372287.aspx

EDITED: well if you want minutes be your biggest unit you can do the following:

string.Format("{0}:{1}", Math.Floor(ts.TotalMinutes), ts.ToString("ss\\.ff"))



回答2:


The TimeSpan.ToString() method in .NET 4.0 has an overload that lets you specify the format.

To display minutes and seconds:

TimeSpan elapsed = GetElapsedTime(); // however you get the amount of time elapsed
string tsOut = elapsed.ToString(@"m\:ss");

To include the milliseconds, you would write:

string tsOut = elapsed.ToString(@"m\:ss\.ff");

Note, however, that this won't do what you expect if the total timespan is more than 60 minutes. The "minutes" value displayed will be elapsed.Minutes, which is basically the same as ((int)elapsed.TotalMinutes) % 60). So if the total time was 70 minutes, the above will show 10:00.

If you want to show the total minutes and seconds reliably, you have to do the math yourself.

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



回答3:


I've coded this way:

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



回答4:


Review the documentation for TimeSpan, the struct returned by stopwatch.Elapsed. You want either the Minutes or TotalMinutes property.

If you're measuring a 62 minute span, ts.Minutes will return 2, and ts.TotalMinutes will return 62.




回答5:


//try it

       Stopwatch sw = new Stopwatch();

        sw.Start();

        Thread.Sleep(10382);

        sw.Stop();


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



回答6:


ts.Minutes

    




回答7:


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


来源:https://stackoverflow.com/questions/5709304/how-show-minutes-and-seconds-with-stopwatch

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!