如何在 C# 中使用 MonthCalendar 计算天数?

How do I calculate the number of days using MonthCalendar in C#?

我已经添加了日历表格,但它不允许我 select 2 个日期。它将每次点击分配给开始日期,所以当我尝试这个时,它总是告诉我差异是 1,并且开始日期总是更改为我的下一次点击是什么?

是否可以将开始日期默认为今天的日期,然后每隔一次点击确定结束日期?当我尝试在 datechanged 事件处理程序中分配今天的日期时,它不会让我更改月份,因为它一直关注 startdate?

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
    numDays = Convert.ToInt32((monthCalendar1.SelectionEnd - monthCalendar1.SelectionStart).TotalDays);
    MessageBox.Show("num " + numDays);
}
// Sets the Month Calenders Min & Max to days in current month.
DateTime dt = DateTime.Today;
DateTime firstDay = new DateTime(dt.Year, dt.Month, 1, 0, 0, 0);
DateTime lastDay = new DateTime(dt.Year, dt.Month, DateTime.DaysInMonth(dt.Year, dt.Month));

dateMonthCalender.MinDate = firstDay;
dateMonthCalender.MaxDate = lastDay;

以上将最小值和最大值设置为当月的天数

如果您想将最小值设置为今天

dateMonthCalender.MinDate = DateTime.Now;

希望对您有所帮助..

好的,那么声明两个整数并将一个分配给选定的日期,另一个分配给今天并为自己创建一个方法

 int selectedDay;
 int todayValue;

DateTime firstDay = new DateTime(dt.Year, dt.Month, 1, 0, 0, 0);

DateTime today = DateTime.Today;
     string todayShort = today.ToShortDateString();
     string thisDay = todayShort.Substring(0, 2);

     todayValue = Convert.ToInt32(thisDay);

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
  {
     // Shorten date format to day and assign it.
     string dMC = dateMonthCalender.SelectionRange.Start.ToShortDateString();
     string takeDMCDay = dMC.Substring(0, 2);
     selectedDay = Convert.ToInt32(takeDay);

}