Как выполнять разделение в промежутках времени
У меня есть значение в TimeSpan
, скажем: tsp1
= 2 часа 5 минут.
У меня есть другая переменная TimeSpan
, которая содержит значение, подобное: tsp2
= 0 часов 2 минуты
Скажите, пожалуйста, как я могу разделить tsp1
на tsp2
, чтобы получить точное количество раз tsp2
делит на tsp1
и то, что осталось.
Я использую Visual Studio 2008.
Спасибо.
Ответы
Ответ 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);
Ответ 2
a div b:
double adivb = (double)a.Ticks/b.Ticks;
отредактирован:
я нашел еще одно сообщение в той же теме
Как я могу выполнить операцию модуля с значениями System.TimeSpan без цикла?
Ответ 3
An int
будет удерживать достаточно секунд в течение ~ 64 лет, так что пока вы останетесь ниже этого:
int count = (int) (tsp1.t.TotalSeconds / tsp2.t.TotalSeconds);
double remainder = tsp1.t.TotalSeconds - (count * tsp2.t.TotalSeconds);
И, возможно, преобразовать остаток в int.