我有这段代码
for (int day =1; days >= day; day++)
{
onemonth.Add(new DateTime(year,month,day));
}
mcCalendar.SelectionRange = new SelectionRange(onemonth[0], onemonth[onemonth.Count - 1]);
因此,这些代码应该获取该月的日期,并将该月的每一天的日期时间创建到列表中。
现在。当问题开始时 McCalendar.SelectionRange不会从第1天到第31天选择,它只选择1到30。 今天是八月,这个月有31天。我怎样才能选择本月的所有日期?包括8月31日。
答案 0 :(得分:0)
您可以使用以下方法获取一个月内的天数
DateTime.DaysInMonth(year, month);
然后运行你的循环直到你获得的天数。
顺便提一下,如果你必须选择当月的所有日子。你不需要任何循环public DateTime StartOfMonth(DateTime dateTime)
{
return new DateTime(dateTime.Year, dateTime.Month, 1);
}
public DateTime EndOfMonth(DateTime dateTime)
{
DateTime firstDayOfTheMonth = new DateTime(dateTime.Year, dateTime.Month, 1);
return firstDayOfTheMonth.AddMonths(1).AddDays(-1);
}
private void button1_Click_2(object sender, EventArgs e)
{
DateTime startMonth = StartOfMonth(DateTime.Now);
DateTime endMonth = EndOfMonth(DateTime.Now);
monthCalendar1.SelectionRange = new SelectionRange(startMonth, endMonth);
}
答案 1 :(得分:0)
我看到你在for循环中使用了“days”变量。 你应该把它初始化为每个月的天数,每个月:
int days = System.DateTime.DaysInMonth(year, month);