c# - 从日期时间中减去未知间隔
问题描述
我正在建立一个系统来根据用户输入的开始日期和结束日期从数据库中收集数据。系统将收集一段时间内的平均数据(例如 1 小时、6 小时或一天)。如果用户没有输入开始或结束日期,我希望程序将开始日期设置为当前时间减去间隔。
我目前让用户按以下格式输入间隔。
1m = 1 minute
1h = 1 hour
12h = 12 hours
3d = 3 days
所以这些值的格式不像日期时间。我可以取当前日期时间并根据附加的值减去分钟、小时或天数(按数字拆分),但这意味着很多if
陈述。我真正想要的是一种用任意值减去日期时间的方法有人有更好的解决方案吗?
解决方案
与其提供预定义的时间间隔(例如通过单独的类型/枚举实现),让用户自由指定TimeSpan
.
这有两个优点:
- 用户不限于预定义的时间间隔
- 你可以
TimeSpan
直接从你的DateTime.Now
如果需要限制有限的时间间隔,您可以在视图/窗口中实现这一点。但这仍然应该是一个 TimeSpan。
推荐阅读
- python - 在 Pandas 中将一个 Excel 文件拆分为具有特定行数的多个文件
- excel - 如何使用 range.value 查找多个字符串?
- css - 使用 CSS 使空白更大
- javascript - 我可以得到选择输入值但无法得到输入值
- css - 如何更改ck editor 4的边框颜色、半径和粗细
- html - 使用 skrape{it} 从 html 获取数据
- angularjs - 量角器因防火墙而无法运行?
- ruby-on-rails - Rails:将模块中的模块称为 Enum 很奇怪
- java - 模型映射器应该只映射列表的第一个条目
- javascript - 上传后在图像上添加图像