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

因此,我需要定义一个类(暂时将其称为WorkingDayDefinition),其中开始和结束实际上不是DateTime,因为它们没有特别地指向任何特定的日期。
目前,我在C#中看到的唯一选择是使用Timespan设置从一天开始的持续时间,以便将8.30 pm添加为TimeSpan(8,30,0)到任一天的Day部分。

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

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

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

那不是我所需要的

最佳答案

您可以使用Noda Time。它提供一个LocalTime (see here)


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


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

LocalTime openingAt = new LocalTime(8, 30);

07-28 01:06
查看更多