时间跨度除以数字

问题描述 投票:0回答:9

我有一个生成时间跨度的代码来计算某些操作的持续时间。 我想要做的是将结果(持续时间)除以一个数字,任何数字。

我怎样才能做到这一点?

c# timespan
9个回答
37
投票

您可以使用原始时间跨度的刻度:

var res = new TimeSpan(origSpan.Ticks / aNumberAnyNumber);

9
投票

尝试

TimeSpan X = ...;

var Result = X.TotalMilliseconds / WhatEverNumber;

参考请参阅MSDN


9
投票
TimeSpan ts = ...
TimeSpan result = TimeSpan.FromTicks(ts.Ticks / divisor);

8
投票

使用

Total*
TimeSpan
属性之一,即数字。

即如果您正在运行您测量的某些代码的五次迭代,那么您可以使用

myTimeSpan.TotalMilliseconds / 5

获取每次迭代的平均毫秒数。您可以使用

Ticks
获取基础值,并根据除法结果构造一个新的
TimeSpan


4
投票

如果您想最终得到一个新的 TimeSpan,它是旧的 TimeSpan 的一小部分:

TimeSpan now = DateTime.Now.TimeOfDay;
TimeSpan halfOfNow = new TimeSpan(now.Ticks / 2);

0
投票

取决于您想要划分的内容,但假设您想要秒数,则可以使用totalseconds属性。

TimeSpan ts = new TimeSpan(4, 0, 0);  //Four hours

MessageBox.Show((ts.TotalSeconds / 4).ToString());

0
投票

自 .NET Standard 2.1 起,

TimeSpan
现在支持除法。

使用示例:

TimeSpan timeSpan = ...
int divisor = ...
TimeSpan result = timeSpan / divisor;

0
投票

要在已有答案的基础上添加更多内容,您可以使用“除法”方法

public TimeSpan Divide (double divisor);

但是你需要将 int 转换为 double。


0
投票

我来到这里寻找一种将 TimeSpan 划分为新的 TimeSpan 且不会得到小数秒的方法。 根据我在这里发现的内容,我想出了:

TimeSpan DivTime = TimeSpan.FromSeconds((long)SourceTime.TotalSeconds / divisor);
© www.soinside.com 2019 - 2024. All rights reserved.