首页 > 解决方案 > 从日期时间中减去未知间隔

问题描述

我正在建立一个系统来根据用户输入的开始日期和结束日期从数据库中收集数据。系统将收集一段时间内的平均数据(例如 1 小时、6 小时或一天)。如果用户没有输入开始或结束日期,我希望程序将开始日期设置为当前时间减去间隔。

我目前让用户按以下格式输入间隔。

1m = 1 minute
1h = 1 hour
12h = 12 hours
3d = 3 days

所以这些值的格式不像日期时间。我可以取当前日期时间并根据附加的值减去分钟、小时或天数(按数字拆分),但这意味着很多if陈述。我真正想要的是一种用任意值减去日期时间的方法有人有更好的解决方案吗?

标签: c#datetimeautomation

解决方案


与其提供预定义的时间间隔(例如通过单独的类型/枚举实现),让用户自由指定TimeSpan.

这有两个优点:

  1. 用户不限于预定义的时间间隔
  2. 你可以TimeSpan直接从你的DateTime.Now

如果需要限制有限的时间间隔,您可以在视图/窗口中实现这一点。但这仍然应该是一个 TimeSpan。


推荐阅读