16

I have to transform my Stopwatch "Variable" into seconds ?

Stopwatch czasAlg = new Stopwatch(); 
czasAlg.Start();
//Do semothing
czasAlg.Stop();
Decimal Tn = czasAlg.ElapsedMilliseconds/(decimal)n;
marcind
  • 52,944
  • 13
  • 125
  • 111
Konrad
  • 726
  • 4
  • 17
  • 33

8 Answers8

43

Divide by 1000 or use

czasAlg.Elapsed.TotalSeconds
Joey
  • 344,408
  • 85
  • 689
  • 683
24

Without your own constants and magic numbers:

TimeSpan.FromMilliseconds(x).TotalSeconds
Shimmy Weitzhandler
  • 101,809
  • 122
  • 424
  • 632
Oleg
  • 249
  • 2
  • 2
23

Just to be different:

Multiply by 0.001.

Oliver Charlesworth
  • 267,707
  • 33
  • 569
  • 680
8

Use

czasAlg.Elapsed.TotalSeconds
marcind
  • 52,944
  • 13
  • 125
  • 111
0

Divide by 1000.0?

Vlad
  • 35,022
  • 6
  • 77
  • 199
0

Divide by 1000.

ThiefMaster
  • 310,957
  • 84
  • 592
  • 636
0

Instead of using math and multiplying/diving like this: seconds (60) * 1000 = 60000, use TimeSpan instead, it's using bit operations, and due to it has a minimum cost of performance.

Milliseconds to seconds

int sixtyThousandsMillisecondsInSeconds = (int)TimeSpan.FromMilliseconds(60000).TotalSeconds;
// Outputs 60

Seconds to milliseconds

// 1 min (60 seconds) in milliseconds = 60000 (i.e 60 * 1000)
int sixtySecondsInMilliseconds = (int)TimeSpan.FromSeconds(60).TotalMilliseconds;
// Outputs 60000

Using LINQPad

int sixtyThousendsMillisecondsInSeconds = (int)TimeSpan.FromMilliseconds(60000).TotalSeconds;
sixtyThousendsMillisecondsInSeconds.Dump();

int sixtySecondsInMilliseconds = (int)TimeSpan.FromSeconds(60).TotalMilliseconds;
sixtySecondsInMilliseconds.Dump();

Results

60

60000

sunnamed
  • 96
  • 1
  • 10