计算平均速度

3 c# vb.net

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

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

HH:MM:ss.ms

如何以km/h计算平均速度?

谢谢

长矛

Mat*_*lls 5

干得好:

double distanceInKilometres = double.Parse("50");
double timeInHours = TimeSpan.Parse("00:02:04.05").TotalHours;
double speedInKilometresPerHour = distanceInKilometres / timeInHours;
Run Code Online (Sandbox Code Playgroud)

由于我不在编译器附近,您的里程可能会有所不同:)


Mar*_*ann 5

简短的回答是:

int d = 50;
string time = "00:02:04.05";
double v = d / TimeSpan.Parse(time).TotalHours;
Run Code Online (Sandbox Code Playgroud)

这将以vkm/h 为单位给出velocity().

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

像这样的东西:

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

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