2015-11-04 54 views
2

我的矛盾或者是很重要的問題是創造我的格式DD的日子名單 - MM - 從今天的日期YY。假設我們今天是「2015/11/04」好嗎?我很想創建啓動恰好從週一,02.11.2015至週日,2015年8月11日的日期時間的列表。這怎麼可能?我想首先:獲取當前星期幾的名單從DateTime.Now

DateTime today = new DateTime.Now; 

int posDayOfWeek = (int)today.DayOfWeek; 

if (posDayOfWeek < 7 && posDayOfWeek > 1) 
{ 
    // And from there a black hole in my brain .... 
} 

我真的不知道該怎麼辦....

謝謝 親切 克里斯蒂安Capannini

+1

始終週一至週日,或依賴於文化? –

回答

7

假設你總是希望週一至週日,你只是需要一些像:

DateTime today = DateTime.Today; 
int currentDayOfWeek = (int) today.DayOfWeek; 
DateTime sunday = today.AddDays(-currentDayOfWeek); 
DateTime monday = sunday.AddDays(1); 
// If we started on Sunday, we should actually have gone *back* 
// 6 days instead of forward 1... 
if (currentDayOfWeek == 0) 
{ 
    monday = monday.AddDays(-7); 
} 
var dates = Enumerable.Range(0, 7).Select(days => monday.AddDays(days)).ToList(); 
+0

謝謝!完善!! –

0

搜索類似的東西在網上,我發現這個問題/答案線程和擴大創建爲基於先從昨天星期ORT順序:

//create a sort order that starts yesterday 
DateTime orderStartDate = DateTime.Today.AddDays(-1); 
List<int> sortOrder = Enumerable.Range(0,7).Select(days => (int)orderStartDate.AddDays(days).DayOfWeek).ToList(); 

//sort collection using the index of the sortOrder 
collection.AddRange(list.OrderBy(list => sortOrder.FindIndex(days => day == list.TargetDay))); 
0

只要使用此:

DayOfWeek[] days = { 
    DayOfWeek.Sunday, 
    DayOfWeek.Monday, 
    DayOfWeek.Tuesday, 
    DayOfWeek.Wednesday, 
    DayOfWeek.Thursday, 
    DayOfWeek.Friday, 
    DayOfWeek.Saturday }; 

很簡單。很明顯。我已經爲你輸入了它。