56 votes

Comment afficher les minutes et les secondes avec Stopwatch()

J'ai besoin d'afficher aussi les minutes, en fait j'utilise ce code pour afficher les secondes, mais j'ai aussi besoin des 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"
);

Comment puis-je faire?

78voto

Andrei Points 885

Tu devrais utiliser:

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

cela vous donnera des minutes, des secondes et des centièmes de seconde dans un intervalle de temps.

jetez également un œil à http://msdn.microsoft.com/en-us/library/ee372287.aspx

ÉDITÉ: Eh bien, si vous voulez que les minutes soient votre plus grande unité, vous pouvez procéder comme suit :

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

15voto

Edu Pelais Points 950

J'ai codé de cette façon :

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

8voto

Michael Petrotta Points 35647

Consultez la documentation pour TimeSpan , la structure renvoyée par stopwatch.Elapsed . Vous voulez la propriété Minutes ou TotalMinutes

Si vous mesurez une durée de 62 minutes, ts.Minutes renverra 2 , et ts.TotalMinutes renverra 62 .

8voto

Felipe Augusto Points 494

//Essayez

        Stopwatch sw = new Stopwatch();

        sw.Start();

        Thread.Sleep(10382);

        sw.Stop();


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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X