C # Timespan Миллисекунды против TotalMilliseconds - PullRequest
53 голосов
/ 30 марта 2011

В приведенном ниже примере, почему свойство Milliseconds возвращает 0, а свойство TotalMilliseconds возвращает 5000

// 5 seconds
TimeSpan intervalTimespan = new TimeSpan(0, 0, 5);

// returns 0
intervalTimespan.Milliseconds;

// returns 5000.0
intervalTimespan.TotalMilliseconds

Ответы [ 6 ]

63 голосов
/ 30 марта 2011

Поскольку Milliseconds возвращает часть в миллисекундах, а TotalMilliseconds возвращает общее количество миллисекунд, представленных Timespan

Пример: 0: 00: 05.047

Миллисекунды: 47

Всего миллисекунд: 5047

61 голосов
/ 30 марта 2011

Простой:

  • Миллисекунды - это оставшиеся миллисекунды, которые не составляют целую секунду.
  • TotalMilliseconds - полная продолжительность промежутка времени, выраженная в миллисекундах.
4 голосов
/ 30 марта 2011

Это происходит потому, что intervalTimespan.Milliseconds;возвращает милисекундный компонент времени.В вашем конструкторе временного интервала у вас есть только час, минута и второй компонент, поэтому результат равен 0. intervalTimespan.TotalMilliseconds - это дает вам общее количество миллисекунд временного промежутка.Пример:

// 5 miliseconds
TimeSpan intervalTimespan = new TimeSpan(0, 0,0,0,5);

// returns 5
intervalTimespan.Milliseconds;

// returns 5
intervalTimespan.TotalMilliseconds
1 голос
/ 30 марта 2011

TimeSpan имеет другие перегрузки

TimeSpan(hour, minute, seconds)
TimeSpan(days, hour, minute, seconds)
TimeSpan(days, hour, minute, seconds, milliseconds)

Свойство в миллисекундах будет возвращать фактическое значение в миллисекундах

TotalMilliseconds возвращает общее количество миллисекунд, включая дни, часы, минуты и секунды

1 голос
/ 30 марта 2011

Очевидно, Miliseconds возвращает только часть вашего * 1002 в миллисекундах, а TotalMiliseconds вычисляет, сколько миллисекунд во времени представлено TimeSpan.

В вашем случае первый возвращает 0, потому что у вас есть ровно 5 секунд, второй возвращает 5000, потому что 5s == 5000 мс

0 голосов
/ 29 июня 2018

Одна важная вещь, о которой другие вещи не упоминают, это то, что (согласно документам):

Свойство Milliseconds представляет целые миллисекунды, тогда как свойство TotalMilliseconds представляет целые и дробные миллисекунды.

Это также вычитается из замечаний TotalMilliseconds:

Это свойство преобразует значение этого экземпляра из тиков в миллисекунды.

Это имеет огромное значение, IMO, потому что если вы хотите самое точное представление в секундах или миллисекундах, вы должны использовать свойства TotalSeconds или TotalMilliseconds, обаиз них типа double.

...