C# 如何在C中使用MonthCalendar计算天数?
我已经添加了日历表单,它不允许我选择2个日期。它将每次单击都指定为开始日期,因此当我尝试此操作时,它总是告诉我差值为1,并且开始日期总是更改为下一次单击的日期 是否可以将开始日期默认为今天的日期,然后每隔一次单击确定结束日期?当我试图在datechanged事件处理程序中指定今天的日期时,它不允许我更改月份,因为它一直关注startdate 上面将最小值和最大值设置为当月的天数 如果要将最小值设置为今天C# 如何在C中使用MonthCalendar计算天数?,c#,winforms,date-range,monthcalendar,C#,Winforms,Date Range,Monthcalendar,我已经添加了日历表单,它不允许我选择2个日期。它将每次单击都指定为开始日期,因此当我尝试此操作时,它总是告诉我差值为1,并且开始日期总是更改为下一次单击的日期 是否可以将开始日期默认为今天的日期,然后每隔一次单击确定结束日期?当我试图在datechanged事件处理程序中指定今天的日期时,它不允许我更改月份,因为它一直关注startdate 上面将最小值和最大值设置为当月的天数 如果要将最小值设置为今天 dateMonthCalender.MinDate = DateTime.Now; 希望这
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);
}请告诉我们更多细节,您的目标是什么,如果您的选择在事件中发生了更改,您可能应该将您的选择传递给一个方法,并在事件之外执行您尝试执行的任何操作。当我输入该代码时,它仍然会将每次单击指定为开始日期:这是因为您在DateChanged事件中的Private void monthCalendar1_DateChangedobject发件人DateRangeEventArgs e{DateTime dt=DateTime.Today;DateTime firstDay=new DateTimedt.Year,dt.Month,1,0,0;DateTime lastDay=new DateTimedt.Year,dt.Month,DateTime.DaysInMonthdt.Year,dt.Month;monthCalendar1.MinDate=firstDay;monthCalendar1.MaxDate=lastDay;numDays=Convert.ToInt32monthCalendar1.SelectionEnd-monthCalendar1.SelectionStart.TotalDays;MessageBox.Showselection+monthCalendar1.SelectionStart;}如何让它将我的点击指定给日期结束日期,以便我的计算可以确定所选日期之间的天数?
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);