2013-10-25 38 views
3

我正在研究需要爲一段時間設置規則的應用程序。該公司有不同的分支機構,每個分支機構都可以設定自己的規則(例如,一個分支上午8點30分開始工作,下午17點30分結束,午餐暫停30分鐘;另一分支開始9點,結束時間19點,停頓1小時。 ..).Net - 一天中的時間

所以我需要定義一個類(我們現在稱之爲WorkingDayDefinition),其中開始和結束實際上並不是DateTime,因爲它們沒有特別指向任何特定的日子。 目前我在C#中看到的唯一選項是使用Timespan來設置從一天開始的持續時間,因此下午8.30是TimeSpan(8,30,0)將被添加到日期的哪一天。

這是C#中的最佳做法嗎?

我搜索了第三方庫,可以幫助我,但到目前爲止,我最好的選擇是這樣的一個:

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

不是嚴格什麼,我需要

回答

2

你可以使用Noda Time。它提供了一個LocalTime(see here)

本地時間是表示一天中的時間的不可變結構,沒有參考特定的日曆,時區或日期。

爲8.30,你會做這樣的事情:

LocalTime openingAt = new LocalTime(8, 30); 
1

對我來說似乎TimeSpam很適合你想要什麼。它包含一段時間,有時在兩個事件之間,但在你的情況下,從一天的開始到你開始/完成工作的時間。我沒有理由不想使用它,只是因爲這個名字可能表明這不是該課程的初衷。此外,它已經與日期時間很好地集成在一起,可以隨時進行隨時計算。