7
是否有可能給出日期範圍來抽出一週中的特定日子並顯示日期?從Linq的特定範圍內檢索一週中的特定日子?
因此,如果我的日期範圍是從2012年8月17日到2012年9月17日,是否有可能使用linq提出說,所有的星期四和星期二?
是否有可能給出日期範圍來抽出一週中的特定日子並顯示日期?從Linq的特定範圍內檢索一週中的特定日子?
因此,如果我的日期範圍是從2012年8月17日到2012年9月17日,是否有可能使用linq提出說,所有的星期四和星期二?
您可以確定天的日期之間的號碼,然後生成所有你感興趣的星期幾的日期和過濾器。
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));
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));
不要用天,但TotalDays TimeSpan的財產。天僅僅是它的日子組成部分(例如,1天和2天的時間段,返回2,而TotalDays返回9天)。 – digEmAll 2012-07-24 14:07:34
@digEmAll我不認爲這是準確的。 'TotalDays'返回一個'double'並表示整個和部分天數。 'Days'返回一個'int',因此忽略任何小數部分。例如,對於'TimeSpan.FromDays(9.5)','Days' = 9,'TotalDays' = 9.5。 – 2012-07-24 14:12:23
是的,我查過了,你是對的。我很抱歉,我說的話適用於其他組件,例如小時,分鐘等,但因爲它是TimeSpan的最大組件,所以不會持續數天。 – digEmAll 2012-07-24 14:42:43