2010-09-21 99 views
4

我們有一個獨特的需求,我們有我們自己的一週的開始日期和一週的結束日期(C#),自定義開始日期和結束日期爲一週的邏輯。 (c#)

與開始日期爲星期日和結束日期的現有日期時間類相反星期六,我們將星期三作爲我們的開始日和星期二我們的結束日期(每個客戶端都會有所不同)。

,我們需要實現以下邏輯

一)在指定日期內得到每週

防爆一週和結束日期的開始日期:基於上述,如果當天是2010/23/Sep/2010(星期四)我們需要22/Sep/2010(星期三)作爲我們的開始日和28/Sep/2010(星期二)作爲我們的結束日期

我道歉有一個更正結束日應該是週二(每週7天)

任何人都可以幫忙嗎?

感謝

+4

週二會發生什麼? – 2010-09-21 18:12:41

+1

如何創建一個將可配置天數添加到現有DateTime類的擴展方法? – 2010-09-21 18:12:47

+4

沒有周二,只有你週二的想法,已經從矩陣中嵌入你的想法。接受它,然後繼續。 – 2010-09-21 18:17:42

回答

5

你不能只是做

(dt.DayOfWeek + delta) % 7 

+0

我不安靜明白什麼是三角洲在這裏? – Nen 2010-09-21 18:20:14

+0

三角洲是從星期天到星期幾的任意開始的多少天。所以如果你的周開始是星期三,你的三角洲會是3(太陽+3天是星期三) – thorkia 2010-09-23 20:44:33

1

這裏是我的不雅裂紋吧:

public static void CalculateWeek (out DateTime WeekStart, out DateTime WeekEnd, DateTime InputDate) 
    { 
     DateTime tempDT = InputDate; 

     while (tempDT.DayOfWeek != DayOfWeek.Wednesday) 
     { 
      tempDT = tempDT.AddDays(-1); 
     } 

     WeekStart = tempDT.Date; 

     while (tempDT.DayOfWeek != DayOfWeek.Tuesday) 
     { 
      tempDT = tempDT.AddDays(1); 
     } 

     WeekEnd = tempDT.Date; 
    } 

決非聰明或超高效率,雖然循環將遍歷除了一些小的7倍沒了。

相關問題