c# - 计算平均速度

标签 c# vb.net

给定一个整数距离(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/

相关文章:

c# - 仅获取程序集中定义的类型

c# - .NET DateTime 线程安全吗

vb.net 获取/设置属性没有逻辑

VB.NET:如何在其他子循环期间保持主窗体控制?

vb.net - “最佳”差异算法

c# - 在另一个窗体中显示 Winform 'Form',就好像它是用户控件一样

c# - BeginInvoke 抛出异常

c# - 为什么我们需要在 C# 中进行向上转型和向下转型?

c# - 获取 boolean 数组中 false 元素的所有索引的最快方法是什么?

c# - 鼠标滚轮滚动的 UI 滚动条滚动灵敏度