【发布时间】:2016-01-19 23:19:49
【问题描述】:
我有一个字符串存储在我们的数据库中,其中包含用于我们视图的某些查询的预定数据。
例如数据库中的字符串示例是
userid=3,name=stuart 等
目前在某些特殊情况下使用占位符,以允许我在运行时(无需用户输入)动态设置一些数据,例如
userid={UID}
所以当从数据库中读取它时,我只需对字符串进行替换以插入数据;
string.Replace("{UID}", User.ID);
有效地允许我限制视图并预先确定返回给它们的数据。我现在的任务是为日期添加更动态的方法。
我们还有其他日期字段,例如 StartDate 和 EndDate,到目前为止,它们只是硬编码日期来限制显示的数据;
例如StartDate=2015/10/21,EndDate=2015/11/21(即yyyy/MM/dd)
这些需要变得更加灵活,例如我可以显示当前月份数据、季度数据、年度数据等。
我的想法是坚持使用相同的占位符类型并添加类似的内容;
StartDate={-Days(10)} - 在 DateTime.Now 之前 10 天的 StartDate
StartDate={-Months(3)} - 例如DateTime.Now 之前的 3 个月
StartDate={-Years(1)} - 例如从 DateTime.Now 减去一年
StartDate={+Days(10)} - 例如从 DateTime.Now 开始的 10 天后
然后我会使用 EndDate 执行类似的过程。
EndDate={-Months(10)} - 例如从 DateTime.Now 等减去 10 个月
这将使我能够灵活地构建足够接近任何日期限制的内容。理想情况下,也可以将这些约束链接起来;
StartDate={-Days(10)-Months(1)-Years(2)}
获取这些数据然后执行此操作的最佳方法是什么。
【问题讨论】:
标签: c# datetime replace text-parsing