Деление по времени на число - PullRequest
21 голосов
/ 03 апреля 2012

У меня есть код, генерирующий промежуток времени для расчета продолжительности какого-либо действия. То, что я хочу сделать, это взять этот результат (продолжительность) и разделить его на число, любое число.

Как я могу это сделать?

Ответы [ 7 ]

30 голосов
/ 03 апреля 2012

Вы можете использовать отметки оригинального временного диапазона:

var res = new TimeSpan(origSpan.Ticks / aNumberAnyNumber);
8 голосов
/ 03 апреля 2012

Используйте одно из Total* свойств TimeSpan, которые являются числами.

Т.е. если вы выполняете пять итераций некоторого кода, который вы измеряете, то вы можете использовать

myTimeSpan.TotalMilliseconds / 5

чтобы получить среднее количество миллисекунд за итерацию.Вы можете использовать Ticks, чтобы получить базовое значение и построить новый TimeSpan из разделенного результата.

7 голосов
/ 03 апреля 2012
TimeSpan ts = ...
TimeSpan result = TimeSpan.FromTicks(ts.Ticks / divisor);
7 голосов
/ 03 апреля 2012

1001 * попробовать *

TimeSpan X = ...;

var Result = X.TotalMilliseconds / WhatEverNumber;

Для справки см. MSDN .

3 голосов
/ 03 апреля 2012

Если вы хотите получить новый интервал времени, который является частью старого:

TimeSpan now = DateTime.Now.TimeOfDay;
TimeSpan halfOfNow = new TimeSpan(now.Ticks / 2);
0 голосов
/ 21 мая 2019

Деление теперь поддерживается TimeSpan начиная с .NET Standard 2.1.

Пример использования:

TimeSpan timeSpan = ...
int divisor = ...
TimeSpan result = timeSpan / divisor;
0 голосов
/ 03 апреля 2012

Зависит от того, что вы хотите разделить, но, скажем, вам нужны секунды, вы можете использовать свойство totalseconds.

TimeSpan ts = new TimeSpan(4, 0, 0);  //Four hours

MessageBox.Show((ts.TotalSeconds / 4).ToString());
...