计算平均速度

时间:2009-07-20 09:02:31

标签: c# vb.net

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

时间为字符串,格式如下:00:02:04.05

HH:MM:ss.ms

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

由于

兰斯

4 个答案:

答案 0 :(得分:5)

你走了:

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

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

答案 1 :(得分:5)

简短的回答是:

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

这将以km / h为单位给出速度(v)。

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

这样的事情:

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

Matt Howells的答案为您提供平均速度,单位为m / s。

这将按照你的要求给你km / h:

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