Подтвердить что ты не робот

Как выполнять разделение в промежутках времени

У меня есть значение в TimeSpan, скажем: tsp1= 2 часа 5 минут. У меня есть другая переменная TimeSpan, которая содержит значение, подобное: tsp2= 0 часов 2 минуты

Скажите, пожалуйста, как я могу разделить tsp1 на tsp2, чтобы получить точное количество раз tsp2 делит на tsp1 и то, что осталось.

Я использую Visual Studio 2008.

Спасибо.

4b9b3361

Ответ 1

Простейший подход, вероятно, состоит в том, чтобы просто взять их длины в тиках и разделить их. Например:

long ticks1 = tsp1.Ticks;
long ticks2 = tsp2.Ticks;

long remainder;
long count = Math.DivRem(ticks1, ticks2, out remainder);

TimeSpan remainderSpan = TimeSpan.FromTicks(remainder);

Console.WriteLine("tsp1/tsp2 = {0}, remainder {1}", count, remainderSpan);

Ответ 3

An int будет удерживать достаточно секунд в течение ~ 64 лет, так что пока вы останетесь ниже этого:

int count = (int) (tsp1.t.TotalSeconds / tsp2.t.TotalSeconds);
double remainder = tsp1.t.TotalSeconds - (count * tsp2.t.TotalSeconds);

И, возможно, преобразовать остаток в int.