如何在时间跨度上进行划分

时间:2010-11-29 10:01:11

标签: c# vb.net timespan

我在TimeSpan中有一个值,假设:tsp1 = 2小时5分钟。 我有另一个TimeSpan变量,其中包含的值如下:tsp2 = 0小时2分钟

请告诉我如何将tsp1除以tsp2,以便我可以获得tsp2分成tsp1的确切次数以及其余部分。< / p>

我正在使用Visual Studio 2008。

感谢。

3 个答案:

答案 0 :(得分:43)

最简单的方法可能就是把它们用在刻度线上,并将它们分开。例如:

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);

答案 1 :(得分:6)

一个div b:

double adivb = (double)a.Ticks/b.Ticks;

<强>编辑:

我发现了同一主题的另一篇文章

How can I achieve a modulus operation with System.TimeSpan values, without looping?

答案 2 :(得分:2)

一个int将保持足够的秒数〜64年,所以只要你保持低于该值:

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

也许可以将余数转换为int。