Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#时间跨度内的时间跨度计数_C#_Timespan - Fatal编程技术网

C#时间跨度内的时间跨度计数

C#时间跨度内的时间跨度计数,c#,timespan,C#,Timespan,我想知道一种在C中实现这一点的方法# 假设我有两个时间跨度:TS1是3h,TS2是12h 计算TS1可以进入TS2的次数的最快方法是什么? 在这种情况下,输出将是4 如果TS1是8天,TS2是32天,它也会返回4。整数除法 (int) TS1.TotalMilliseconds/(int) TS2.TotalMilliseconds; 整数计数=(整数)(ts2.TotalSeconds/ts1.TotalSeconds) 您可以将总毫秒数从一个除以另一个。即: double times =

我想知道一种在C中实现这一点的方法#

假设我有两个时间跨度:TS1是3h,TS2是12h

计算TS1可以进入TS2的次数的最快方法是什么? 在这种情况下,输出将是4

如果TS1是8天,TS2是32天,它也会返回4。

整数除法

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

整数计数=(整数)(ts2.TotalSeconds/ts1.TotalSeconds)

您可以将
总毫秒数
从一个除以另一个。即:

double times = TS2.TotalMilliseconds / TS1.TotalMilliseconds

是的,使用整数除法。但问题在于细节,请务必使用时间跨度的积分属性,以避免溢出和舍入问题:

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

如果TS1=3h,TS2=13:05?请举个好例子。请检查最后一句,我想你打错了“…TS2是32天”@Hans,你可以证明使用
记号
更好,我给你投了更高的票。但没有迹象表明OP关心亚毫秒精度。事实上,他用的最小单位是一小时。我同意用+1表示整数除法。你本可以使用TimeSpan.TotalHours来遵循这一逻辑,但我只是想指出“落入成功陷阱”的角度。