Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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#_Vb.net - Fatal编程技术网

C# 计算平均速度

C# 计算平均速度,c#,vb.net,C#,Vb.net,给定的距离(50km)为整数:50 以及以下格式的时间字符串:00:02:04.05 hh:mm:ss.ms 我将如何计算以km/h为单位的平均速度 谢谢 Lance你用整数做什么?TimeSpan.Ticks属性是一个64位整数,您可以将其传递回TimeSpan构造函数。给您: double distanceInKilometres = double.Parse("50"); double timeInHours = TimeSpan.Parse("00:02:04.05").TotalHou

给定的距离(50km)为整数:50

以及以下格式的时间字符串:00:02:04.05

hh:mm:ss.ms

我将如何计算以km/h为单位的平均速度

谢谢


Lance

你用整数做什么?
TimeSpan.Ticks
属性是一个64位整数,您可以将其传递回
TimeSpan
构造函数。

给您:

double distanceInKilometres = double.Parse("50");
double timeInHours = TimeSpan.Parse("00:02:04.05").TotalHours;
double speedInKilometresPerHour = distanceInKilometres / timeInHours;
由于我不在编译器附近,您的里程可能会有所不同:)

简短的回答是:

int d = 50;
string time = "00:02:04.05";
double v = d / TimeSpan.Parse(time).TotalHours;
这将为您提供以km/h为单位的速度(
v

更面向对象的答案包括定义距离和速度的值对象类。就像TimeSpan是一个值对象一样,您可以在距离类中封装距离的概念,而不考虑度量值。然后可以添加方法(或运算符重载),然后根据时间跨度计算速度

大概是这样的:

Distance d = Distance.FromKilometers(50);
TimeSpan t = TimeSpan.Parse("00:02:04.05");
Speed s = d.CalculateSpeed(t);

如果您只需要在代码中计算几个地方的速度,那么这种方法就太过分了。另一方面,如果使用距离和速度是您所在领域的核心概念,那么这肯定是正确的方法。

马特·豪厄尔的答案为您提供了以m/s为单位的平均速度

这将为您提供所需的km/h:

double distanceInKm = (double)50;
double timeInHours = TimeSpan.Parse("00:02:04.05").TotalHours;
double speedInKmPerHour = distanceInKm / timeInHours;

这是可行的,但是如果他不需要显示整数,
Ticks
属性不需要任何缩放。yip这是可行的。但是我如何用它来计算平均速度呢。距离/时间=平均值speed@Lance,我建议你修改你关于速度计算的问题。是的,这可能是OP想要的(尽管这个问题不清楚这个整数应该代表什么)。我在lbltime.text中给出了一个整数距离和一个时间,然后我需要计算平均速度。整数应该是时间中的秒数吗?若有,自何时起的秒数?e、 午夜,过去的某个日子。您应该更改问题的标题您需要什么计量单位?m/s?kmh?(每两周弗隆?;-)供将来参考:v=s/t,其中v为速度,s为路径长度,t为时间。