C#时间跨度内的时间跨度计数
我想知道一种在C中实现这一点的方法# 假设我有两个时间跨度:TS1是3h,TS2是12h 计算TS1可以进入TS2的次数的最快方法是什么? 在这种情况下,输出将是4 如果TS1是8天,TS2是32天,它也会返回4。整数除法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 =
(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来遵循这一逻辑,但我只是想指出“落入成功陷阱”的角度。