C#在一个时间跨度内的时间跨度计数

时间:2010-09-18 21:21:44

标签: c# timespan

我想知道在C#中执行此操作的方法

假设我有2个时间跨度:TS1为3h,TS2为12h。

计算TS1在TS2内的次数的最快方法是什么? 在这种情况下,输出将为4。

如果TS1为8天且TS2为32天,它也将返回4。

4 个答案:

答案 0 :(得分:8)

整数分裂?

(int) TS1.TotalMilliseconds/(int) TS2.TotalMilliseconds;

答案 1 :(得分:8)

是的,使用整数除法。但是魔鬼在细节中,一定要使用TimeSpan的整体属性来避免溢出和舍入问题:

 int periods = (int)(TS1.Ticks / TS2.Ticks);

答案 2 :(得分:4)

您可以将TotalMilliseconds从一个分开。那就是:

double times = TS2.TotalMilliseconds / TS1.TotalMilliseconds

答案 3 :(得分:2)

int count =(int)(ts2.TotalSeconds / ts1.TotalSeconds);