gpt4 book ai didi

c# - 按天数过滤日期列表

转载 作者:行者123 更新时间:2023-11-30 17:05:09 26 4
gpt4 key购买 nike

我正在尝试按天数过滤日历(日期列表),但在特定情况下苦苦挣扎!

日历最初将包含指定范围内的所有日期,比如 2013 年 1 月 31 日 - 2015 年 1 月 31 日。我想过滤此列表以仅包含与日历中第一天数字匹配的日期,例如,如果日历中的第一天是 25,返回的新筛选日历将是:

  • 2013 年 2 月 25 日
  • 2013 年 3 月 25 日
  • 2013 年 4 月 25 日

...等等

第一个示例使用 LINQ 非常简单

var calendar = ...code to get calendar from DB.

//Get Day Number of First Entry in Calendar (31st for example)
int day = calendar.Dates.Select(d => d.Date.Day).First();

//Filter the rest of the calendar by this date.
return new Calendar
{
Dates = calendar.Dates.Where(c => c.Date.Day == day).ToList()
};

我在传递 31 时遇到困难。我的要求是返回:

  • 2013 年 1 月 31 日
  • 2013 年 2 月 28 日
  • 2013 年 4 月 30 日
  • 2013 年 5 月 31 日

...等等

实现此目标的最佳方法是什么?它在星期三早上啄我的大脑!

如果可能的话,我希望答案是一个完美的单行 LINQ 语句:)

非常感谢,

亚历克斯

最佳答案

DateTime.DaysInMonth 助您一臂之力!

return new Calendar
{
Dates = calendar.Dates.Where(c => c.Date.Day == Math.Min(day, DateTime.DaysInMonth(c.Year, c.Month))).ToList()
};

关于c# - 按天数过滤日期列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16810444/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com