C# 以编程方式选择asp.net日历中的日期

C# 以编程方式选择asp.net日历中的日期,c#,asp.net,calendar,C#,Asp.net,Calendar,我正在asp.net web窗体应用程序中使用日历控制器。我在应用程序中实现了日历。我正在将选定的日期添加到列表中,以记住选定的日期并在将来的操作中使用它们 现在我在页面上添加了一些按钮,如选择周末、选择工作日、选择月份和选择年份 如果我点击选择周末按钮,我需要选择当前月份的所有周末并将其添加到列表中 如果我点击选择工作日按钮,我需要选择当月的所有工作日并将它们添加到列表中 如果我点击选择月份**按钮,我需要选择当前月份的所有日期并将其添加到列表中 如果我点击选择年份按钮,我需要选择当前年份的所

我正在asp.net web窗体应用程序中使用日历控制器。我在应用程序中实现了日历。我正在将选定的日期添加到列表中,以记住选定的日期并在将来的操作中使用它们

现在我在页面上添加了一些按钮,如选择周末、选择工作日、选择月份和选择年份

如果我点击选择周末按钮,我需要选择当前月份的所有周末并将其添加到列表中

如果我点击选择工作日按钮,我需要选择当月的所有工作日并将它们添加到列表中

如果我点击选择月份**按钮,我需要选择当前月份的所有日期并将其添加到列表中

如果我点击选择年份按钮,我需要选择当前年份的所有日期并将它们添加到列表中


我如何用C语言编程实现这一点?

我认为没有奇迹般的解决方案,在这里我将如何编写两种方法来满足您周末的需求。对于其他几点,您可以做大致相同的事情:

    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;
    }

我需要更改所选日期的背景颜色。如何执行此操作?示例:this.Calendar1.SelectedDayStyle.BackColor=System.Drawing.Color.Red;你能解释一下这句话吗?DT=DT.AddDaysDT.DayOfWeek==DayOfWeek.星期六?1 : 6;. 我想争取一周的工作日。但是仍然无法正确执行。如果猜测,您可以查看三元运算符的定义:如果DT.DayOfWeek是星期六,则此行将DT增加1天,如果DT.DayOfWeek是星期天,则增加6天以到达下一个星期六。我没有为你的4个不同点写一个完整的解决方案,我只是想展示一条路要走,你可能需要在逻辑上做相应的改变来编写其他方法,我的意思是不只是复制/粘贴和更改一些东西。我已经修改了你的代码以获得周天数。但它不能正常工作。我已将其添加为。你能看看吗?