1

Calendar在我的 asp.net 网络表单应用程序中使用控制器。我按照这篇文章Calendar在我的应用程序中实现。我将选定的日期添加到 aList<DateTime>中以记住选定的日期并在未来的操作中使用它们。

现在,我在页面中添加了按钮,例如Select Weekends、和。Select WeekdaysSelect MonthSelect Year

  • 如果我点击Select Weekends按钮,我需要选择当月的所有周末并将它们添加到List<DateTime>.

  • 如果我点击Select Weekdays按钮,我需要选择当前月份的所有工作日并将它们添加到List<DateTime>.

  • 如果我点击Select Month** 按钮,我需要选择当月的所有日子并将它们添加到List<DateTime>.

  • 如果我点击Select Year按钮,我需要选择当年的所有日子并将它们添加到List<DateTime>.

如何使用 C# 以编程方式执行此操作?

4

1 回答 1

2

我不认为有一个奇迹般的解决方案,在这里我将如何编写 2 种方法来满足您周末的需求。对于其他点,您可以或多或少地做同样的事情:

    protected void WeekendDays_Button_Click(object sender, EventArgs e)
    {
        this.SelectWeekEnds():
    }

    private void SelectWeekEnds(){
        //If you need to get the selected date from calendar
        //DateTime dt = this.Calendar1.SelectedDate;

        //If you need to get the current date from today
        DateTime dt = DateTime.Now;

        List<DateTime> weekendDays = this.SelectedWeekEnds(dt);
        weekendDays.ForEach(d => this.Calendar1.SelectedDates.Add(d));
    }

    private List<DateTime> GetWeekEndDays(DateTime DT){
        List<DateTime> result = new List<DateTime>();
        int month = DT.Month;
        DT = DT.AddDays(-DT.Day+1);//Sets DT to first day of month

        //Sets DT to the first week-end day of the month;
        if(DT.DayOfWeek != DayOfWeek.Sunday)
            while (DT.DayOfWeek != DayOfWeek.Saturday)
                DT = DT.AddDays(1);

        //Adds the week-end day and stops when next month is reached.
        while (DT.Month == month)
        {
            result.Add(DT);
            DT = DT.AddDays(DT.DayOfWeek == DayOfWeek.Saturday ? 1 : 6);
        }
        return result;
    }
于 2013-06-26T12:00:30.860 回答