linq选择日期之间的位置
本文关键字:位置 之间 日期 选择 linq | 更新日期: 2023-09-27 18:20:36
我正试图将Date
和DateFinal
之间的所有事件添加到日期中,以便用事件填充日历。
我已经搜索过了,但找不到任何解决方案。
pageItems.Add("dates", allEvents.Select(i => i.Date).ToList());
这是我到目前为止所拥有的,但只显示i.Date
的天数,我想显示Date
和DateFinal
之间的所有天数。
提前干杯和感谢
在所有事件中我有
allEvents = Current.Descendants(n => n.NodeTypeAlias == "EventPage")
.get_Items()
.Select(n => new{
Node = n,
Date = (Helper.ParseXmlDate(n.GetProperty("itemDate")) ?? n.UpdateDate).DatePart(),
DateFinal = (Helper.ParseXmlDate(n.GetProperty("itemDateFinal")) ?? n.UpdateDate).DatePart()
});
使用此:
allEvents.Where(i => i.Date > Date && i.Date < DateFinal).Select(i => i.Date).ToList()
第一。。对不起,如果我误解了的问题
如果您有2个DateTime,并且您想选择这2个日期之间的所有日期的列表(作为DateTime),则可以使用Enumerable.Range
(使用Date
和DateFinal
之间的天数)在select
语句中循环,将一天添加到开始日期并输出DateTimes 列表
这将选择Date
和DateFinal
之间的所有日期。
allevents.Select(i => Enumerable.Range(1, (i.DateFinal - i.Date).Days).Select(dayCount => i.Date.AddDays(dayCount))).ToList()
如果需要将Date
和DateFinal
包括在列表中,则可以使用
allevents.Select(i => Enumerable.Range(0, 1 + (i.DateFinal - i.Date).Days).Select(dayCount => i.Date.AddDays(dayCount))).ToList()
输入:
Date: 02/20/2013
DateFinal: 02/31/2013
输出:
02/20/2013
02/21/2013
02/22/2013
02/23/2013
...
你是这个意思吗?
您可能正在搜索:
TimeSpan span=d2-d1;
span.TotalDays;
所以它应该看起来像:
allEvents.Select(i => (DateFinal - i.Date).TotalDays).ToList()
这显示了某些DateFinal和i.Date之间的所有日期
如果这不是你想要的,请澄清。