【发布时间】:2011-06-15 08:59:54
【问题描述】:
我需要一种使用 C# 存储和操作日期范围并将数据存储在 SQL 数据库中的方法。存储两个 DateTime 是解决此问题的最佳方法吗?
例如,我需要员工能够通过使用 DatePicker 选择开始日期和结束日期来选择他们在特定项目上花费的持续时间。
我还有以下要求:
- 开始需要支持半天 和/或持续时间结束。
- 我需要能够计算 两个日期之间的天数(作为 双倍,其中 0.5 是半天)。
- 我需要能够计算 之间的工作日数 两个日期(作为双)。
- 时间跨度需要显示在 jquery 日历。
-
最低限度 持续时间为半天。
从 5 月 24 日到 5 月 27 日一整天的 1/2 天的日期范围: 2011-05-24 12:00:00.000 => 2011-05-28 00:00:00.000
从 5 月 24 日到 5 月 27 日的 1/2 天的全天日期范围: 2011-05-24 00:00:00.000 => 2011-05-27 12:00:00.000
5 月 24 日半天: 2011-05-24 12:00:00.000 => 2011-05-25 00:00:00.000
5 月 24 日全天: 2011-05-24 00:00:00.000 => 2011-05-25 00:00:00.000
这种表示有意义吗?考虑到我的要求,我是否应该考虑为 StartDate 和 TimeSpan 存储 DateTime?
编辑:也
我对结束日期的表示有意义吗?因此,5 月 2 日将保存为 '2011-05-03 00:00:00.000',因为那是持续时间结束的时间。考虑到这一点,在日历中显示时,我需要从结束日期中减去一天。
【问题讨论】:
-
5 月 24 日半天 = 5 月 24 日全天?是错字吗?全天不应该是从 2011-05-24 00:00:00 到 2011-05-25 00:00:00 吗?
标签: c# sql-server-2008 datetime