2

我正在尝试将所有事件添加到日期中DateDateFinal以便用事件填充日历。

我已经搜索过,但找不到任何解决方案。

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

3 回答 3

5

用这个:

allEvents.Where(i => i.Date > Date && i.Date < DateFinal).Select(i => i.Date).ToList()
于 2013-07-02T07:15:53.350 回答
3

首先..对不起,如果我误解了这个问题

如果您有 2 个 DateTime 并且您想选择这 2 个日期之间的所有天数(作为 DateTime)的列表,您可以使用和Enumerable.Range之间的天数在语句中循环以在开始日期和输出日期时间列表DateDateFinalselect

这将选择 和 之间的所有日期DateDateFinal

  allevents.Select(i => Enumerable.Range(1, (i.DateFinal - i.Date).Days).Select(dayCount => i.Date.AddDays(dayCount))).ToList()

如果您需要包含 DateDateFinal添加到列表中,您可以使用

  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
...

你是这个意思吗?

于 2013-07-02T07:42:58.060 回答
2

您可能正在搜索:

TimeSpan span=d2-d1;
span.TotalDays;

所以它应该看起来像:

allEvents.Select(i => (DateFinal - i.Date).TotalDays).ToList()

这显示了某些 DateFinal 和 i.Date 之间的所有天数

如果这不是您要搜索的内容,请澄清。

于 2013-07-02T07:15:22.087 回答