-
一个简单的日期选择器,当选择年份时,显示月份,选择月份时再显示这个月的天数。中间要判断平年、闰年,正确计算出每个月的天数。窗体中间放置3个ListBox,分别存储year、month、day。
-
1、当加载主窗体时,向cboYears添加年份,从1949至今,获得当时系统时间:DataTime.Now.Year
-
2、选择某一年份时,触发cboYears.SelectedIndexChanged事件,向cboMonths添加月份
-
3、选择某一月份时,触发cboMonths.SelectedIndexChanged事件,向cboDays添加天,此时,判断平年,闰年,正确计算这个月份的天数,其中用到多条件选择语句 switch...case...语句
private void Form1_Load(object sender, EventArgs e) { //窗体加载时候,向cboYears中添加年份 int year =DateTime.Now.Year; for (int i=year; i>=1949; i--) { cboYears.Items.Add(i+"年"); } //将某一指定文件夹的全部路径加载到ListBox string [] strpath =Directory.GetFiles(@"F:\高圆圆"); for (int i = 0; i < strpath.Length; i++) { list.Add(strpath[i]); //获得指定路径的扩展名 string fileName=Path.GetFileName(strpath[i]); listBox1.Items.Add(fileName); } } /// <summary> /// 当cboYears选中某一年时向cboMonths添加月份 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cboYears_SelectedIndexChanged(object sender, EventArgs e) { //改变年份前首先清空cboMonths中数据,防止重复添加 cboMonths.Items.Clear(); for (int i=1; i<=12; i++) { cboMonths.Items.Add(i+"月"); } } /// <summary> /// 当cboMonths选择某一个月份时向cboDays添加天 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cboMonths_SelectedIndexChanged(object sender, EventArgs e) { //改变年份前首先清空cboMonths中数据,防止重复添加 cboDays.Items.Clear(); //要判断月份的天数,是平年还是闰年 int day=0; string strmonth=cboMonths.SelectedItem.ToString().Substring(0, 1); int month=Convert.ToInt32(strmonth); string stryear=cboYears.SelectedItem.ToString().Substring(0, 1); int year =Convert.ToInt32(stryear); //判断每个月有多少天数每一个case需要有break语句 // switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 2: if (year%400==0||(year%4==0&&year%100!=0)) { day=29; } day=28; break;//break不能放在if里面,否则出现控制不能从一个case标签贯穿到另一个case错误 default: day=30; break; } for (int i=1; i<=day; i++) { cboDays.Items.Add(i+"日"); } }