我被困住了一段时间,现在需要你的帮助。

我想在每个月的第四个星期日的下拉列表中显示,比如从 1-Sep-2010 到 31-Aug-2011

我只想要下拉列表中的第四个星期天,如何使用 asp.net C#

问候

最佳答案

这是一种使用一点 LINQ 的方法,并且知道第四个星期日将发生在一个月的 22 日和 28 日之间,包括 22 日和 28 日。

DateTime startDate = new DateTime(2010, 9, 1);
DateTime endDate = startDate.AddYears(1).AddDays(-1);

List<DateTime> fourthSundays = new List<DateTime>();

DateTime currentDate = startDate;
while (currentDate < endDate)
{
    // we know the fourth sunday will be the 22-28
    DateTime fourthSunday = Enumerable.Range(22, 7).Select(day => new DateTime(currentDate.Year, currentDate.Month, day)).Single(date => date.DayOfWeek == DayOfWeek.Sunday);
    fourthSundays.Add(fourthSunday);
    currentDate = currentDate.AddMonths(1);
}

然后,您可以将该 List<DateTime> 绑定(bind)到下拉列表或跳过列表本身,以便在生成项目时将它们添加到下拉列表中,如下所示。
yourDropdown.Items.Add(new ListItem(fourthSunday.ToString()));

对于笑声,您可以在 LINQ 语句中完成整个操作并跳过(大部分)变量。
DateTime startDate = new DateTime(2010, 9, 1);
IEnumerable<DateTime> fourthSundays =
    Enumerable.Range(0, 12)
    .Select(item => startDate.AddMonths(item))
    .Select(currentMonth =>
        Enumerable.Range(22, 7)
        .Select(day => new DateTime(currentMonth.Year, currentMonth.Month, day))
        .Single(date => date.DayOfWeek == DayOfWeek.Sunday)
    );

关于c# - 仅选择每月的第四个星期日,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3614429/

10-10 22:23