7

是否可以给定一个日期范围来提取一周中的特定日期并显示它们的日期?

那么,如果我的日期范围是从 2012 年 8 月 17 日到 2012 年 9 月 17 日,是否可以使用 linq 提取所有星期四和星期二?

4

2 回答 2

8

您可以确定日期之间的天数,然后生成所有日期并过滤您感兴趣的星期几。

var start = DateTime.Parse("08/17/2012");
var end = DateTime.Parse("09/17/2012");
int numberOfDays = end.Subtract(start).Days + 1;
var daysOfWeek = new[] { DayOfWeek.Tuesday, DayOfWeek.Thursday };

var dates = Enumerable.Range(0, numberOfDays)
                      .Select(i => start.AddDays(i))
                      .Where(d => daysOfWeek.Contains(d.DayOfWeek));
于 2012-07-24T14:03:33.253 回答
4
var start = new DateTime(2012, 8, 17);
var end = new DateTime(2012, 9, 17);

var daysToChoose = new DayOfWeek[] { DayOfWeek.Thursday, DayOfWeek.Tuesday };

var dates = Enumerable.Range(0, (int)(end - start).TotalDays + 1)
                        .Select(d => start.AddDays(d))
                        .Where(d => daysToChoose.Contains(d.DayOfWeek));
于 2012-07-24T14:03:56.990 回答