如何获取使用linq或lambda表达式的开始和结束日期之间的日期列表。获取从StartDate到EndDate的日期列表
DateTime StartDate = DateTime.Now;
DateTime EndDate = DateTime.Now.AddMonths(13);
List<DateTime> ListofDates = //Contains list of all dates only between start and end date.
如何获取使用linq或lambda表达式的开始和结束日期之间的日期列表。获取从StartDate到EndDate的日期列表
DateTime StartDate = DateTime.Now;
DateTime EndDate = DateTime.Now.AddMonths(13);
List<DateTime> ListofDates = //Contains list of all dates only between start and end date.
首先,当你想Dates
而不是Datetimes
您更好地使用DateTime.Now.Date
而不只是DateTime.Now
我已经编辑SLaks代码,这样你可以得到你想要的日期列表。
DateTime StartDate = DateTime.Now.Date;
DateTime EndDate = DateTime.Now.Date.AddMonths(13);
IEnumerable<double> daysToAdd = Enumerable.Range(0,
(EndDate - StartDate).Days + 1)
.ToList().ConvertAll(d => (double)d);
IEnumerable<DateTime> ListOfDates = daysToAdd.Select(StartDate.AddDays).ToList();
请注意,我在枚举添加+1
这样你就可以同时拥有start
和end
日期(你没有指定。)
Enumerable.Range(0, (EndDate - StartDate).Days).Select(i => StartDate.AddDays(i))
List<DateTime> ListofDates = Enumerable.Range(0, (EndDate - StartDate).Days)
.Select(i => StartDate.AddDays(i))
.ToList();
将返回我列表列表作为我们要列表 –
@SOFUser:这确实会返回DateTimes。 – SLaks