从日期时间中减去未知间隔

时间:2019-04-23 14:47:40

标签: c# date time automation

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

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

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

因此,这些值的格式不像datetime。我可以采用当前日期时间,并根据附加的值(用数字分隔)减去分钟,小时或天,但这将意味着很多if语句。我真正想要的是一种用任意值减去日期时间的方法,有人能找到更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

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

这有两个优点:

  1. 用户不受限于预定义的时间间隔
  2. 您可以直接从TimeSpan中减去DateTime.Now

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