C# 正在从DateTime获取当前星期的天数列表。立即

C# 正在从DateTime获取当前星期的天数列表。立即,c#,C#,我自相矛盾的或者可能是琐碎的问题是以DD-MM-YY格式创建一个从今天开始的日期列表。假设我们有今天的“11/04/2015”行吗?我有兴趣创建一个日期时间列表,从2015年11月2日星期一到2015年11月8日星期日。这怎么可能?我起初认为: DateTime today = new DateTime.Now; int posDayOfWeek = (int)today.DayOfWeek; if (posDayOfWeek < 7 && posDayOfWeek &

我自相矛盾的或者可能是琐碎的问题是以DD-MM-YY格式创建一个从今天开始的日期列表。假设我们有今天的“11/04/2015”行吗?我有兴趣创建一个日期时间列表,从2015年11月2日星期一到2015年11月8日星期日。这怎么可能?我起初认为:

DateTime today = new DateTime.Now;

int posDayOfWeek = (int)today.DayOfWeek;

if (posDayOfWeek < 7 && posDayOfWeek > 1)
{
    // And from there a black hole in my brain ....
}
DateTime today=新的DateTime.Now;
int posDayOfWeek=(int)today.DayOfWeek;
if(posDayOfWeek<7&&posDayOfWeek>1)
{
//从那里我的大脑中有一个黑洞。。。。
}
我真的不知道怎么做

多谢各位 热忱地
克里斯蒂安·卡帕尼尼(Cristian Capannini)

假设你总是想从周一到周日,你只需要以下东西:

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();

在网络上搜索类似的内容,我找到了这个问答线索,并扩展到创建一个基于从昨天开始的星期几的排序顺序:

//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)));
//创建昨天开始的排序顺序
DateTime orderStartDate=DateTime.Today.AddDays(-1);
List sortOrder=Enumerable.Range(0,7)。选择(days=>(int)orderStartDate.AddDays(days).DayOfWeek.ToList();
//使用排序器的索引对集合进行排序
collection.AddRange(list.OrderBy(list=>sortOrder.FindIndex(days=>day==list.TargetDay));
只要用这个:

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

很简单。很清楚。我已经给你打出来了。

总是周一到周日,还是取决于文化?