给定一个整数距离(50km):50
时间为以下格式的字符串:00:02:04.05
时:分:秒.ms
我如何计算以公里/小时为单位的平均速度?
谢谢
兰斯
最佳答案
简短的回答是:
int d = 50;
string time = "00:02:04.05";
double v = d / TimeSpan.Parse(time).TotalHours;
这将为您提供以公里/小时为单位的速度 (v
)。
一个更面向对象的答案包括为距离和速度定义值对象类。就像 TimeSpan 是一个值对象一样,您可以将距离的概念封装在 Distance 类中,而不考虑度量。然后,您可以添加方法(或运算符重载),而不是从 TimeSpan 计算速度。
像这样:
Distance d = Distance.FromKilometers(50);
TimeSpan t = TimeSpan.Parse("00:02:04.05");
Speed s = d.CalculateSpeed(t);
如果您只需要在代码中的几个地方计算速度,那么这种方法就太过分了。另一方面,如果处理距离和速度是您所在领域的核心概念,那绝对是正确的方法。
关于c# - 计算平均速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1152474/