3

我正在开发一个需要为一段时间设置规则的应用程序。公司有不同的分支机构,每个分支机构可以设置自己的规则(即一个分支机构早上8.30开始工作,晚上17.30结束工作,午餐休息30分钟;另一个分支机构从9.00开始,19.00结束,暂停1小时。 ..)

所以我需要定义一个类(让我们暂时称之为WorkingDayDefinition),其中 start 和 end 实际上不是 a DateTime,因为它们没有特别提到任何特定的日子。目前我在 C# 中看到的唯一选项是Timespan用于设置从一天开始的持续时间,以便将 8.30 pmTimeSpan(8,30,0)添加到任何一天的 Day 部分。

这是 C# 中的最佳实践吗?

我搜索了可以帮助我的第三方库,但到目前为止,我最好的选择是这个:

http://www.codeproject.com/Articles/168662/Time-Period-Library-for-NET

严格来说,这不是我需要的

4

2 回答 2

2

你可以使用Noda Time. 它提供了一个LocalTime (见这里)

LocalTime 是一个不可变的结构,表示一天中的时间,不引用特定的日历、时区或日期。

对于 8.30,您将执行以下操作:

LocalTime openingAt = new LocalTime(8, 30);
于 2013-10-25T06:54:30.610 回答
1

对我来说 TimeSpam 似乎非常适合你想要的。它有一个时间间隔,有时在两个事件之间,但在你的情况下,在一天的开始和你开始/完成工作的时间之间。我没有理由不使用它,只是因为这个名字可能暗示这不是课程的初衷。此外,它已经与 DateTimes 很好地集成在一起,可以在以后进行任何时间计算。

于 2013-10-25T07:00:09.683 回答