我在我的asp.net Web表单应用程序中使用Calendar
控制器。我按照this article在我的申请中实施Calendar
。我将选定的天数添加到List<DateTime>
以记住所选日期,并在将来的操作中使用它们。
现在我已经在我的页面添加了按钮,例如Select Weekends
,Select Weekdays
,Select Month
和Select Year
。
如果我点击Select Weekends
按钮,我需要选择当月的所有周末日,并将其添加到List<DateTime>
。
如果点击Select Weekdays
按钮,我需要选择当月的所有工作日,并将其添加到List<DateTime>
。
如果我点击Select Month
**按钮,我需要选择当月的所有日期并将其添加到List<DateTime>
。
如果我点击Select Year
按钮,我需要选择当年的所有日期并将其添加到List<DateTime>
。
如何使用C#以编程方式执行此操作?
答案 0 :(得分: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;
}