我需要一個考慮到工作時間的TimeSpan。假設如果我們將TimeSpan配置爲每天8小時,兩天應該返回16小時而不是48小時。有人知道這樣的課程嗎?TimeSpan承認C的工作時間#
謝謝。
編輯
我需要相同的功能,但時間跨度與配置的一天時間。加,減,......應該考慮到這一點。我試圖擴展TimeSpan,但它是封閉的。也許我應該去一些擴展方法來實現這個Oded建議(或類似的)。
我需要一個考慮到工作時間的TimeSpan。假設如果我們將TimeSpan配置爲每天8小時,兩天應該返回16小時而不是48小時。有人知道這樣的課程嗎?TimeSpan承認C的工作時間#
謝謝。
編輯
我需要相同的功能,但時間跨度與配置的一天時間。加,減,......應該考慮到這一點。我試圖擴展TimeSpan,但它是封閉的。也許我應該去一些擴展方法來實現這個Oded建議(或類似的)。
如果你只是想每天要弄清楚爲8個小時,你可以這樣做:
return TimeSpan.TotalHours/3;
更新:
現在,你提供了一些更詳細,我建議包裝時間跨度與您自己的類型 - 你可以有一個HoursInWorkingDay
屬性,它可以讓你配置一個工作日的小時數。
有一個構造函數,需要一個時間跨度,並分配到可用於計算的私人時間跨度:
public class WrappedTimeSpan
{
private TimeSpan ts;
private int hoursInDay = 8;
public WrappedTimeSpan(TimeSpan origTS)
{
ts = origTs;
}
public WrappedTimeSpan(TimeSpan origTS, int hoursInDay) : this(origTs)
{
hoursInDay = hoursInDay;
}
public int HoursInDay { get;}
public int WorkingHours { get { return ts.TotalHours/hoursInDay; }}
}
這可以擴展以滿足您有任何其他要求。
很短,很容易和很好+1 – 2010-10-22 10:05:16
我一直在尋找更多完整的解決方案... – 2010-10-22 10:09:50
你是否考慮過例如週一16:30和週二9:30(應該產生1小時),週五9h和週一9h(8h),跨文化差異在穆斯林世界(星期五是週日而不是週日),商業差異(並非所有工作都在9小時開始和/或在17小時結束)以及額外的信息比如加班和假期? – Dialecticus 2010-10-22 10:10:19
大多數情況下,您可能沒有特別注意c#的用途,但以防萬一:Excel支持您的要求。 – 2010-10-22 12:36:57
相關:http://stackoverflow.com/questions/3492958/how-can-a-timespan-day-last-only-for-8-hours – 2010-10-22 16:53:53