一个简单的日期选择器

  • 一个简单的日期选择器,当选择年份时,显示月份,选择月份时再显示这个月的天数。中间要判断平年、闰年,正确计算出每个月的天数。窗体中间放置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 senderEventArgs e)
        {
            //窗体加载时候,向cboYears中添加年份
            int year =DateTime.Now.Year;
            for (int i=yeari>=1949; i--)
            {
                cboYears.Items.Add(i+"年");
            }
            //将某一指定文件夹的全部路径加载到ListBox
            string [] strpath =Directory.GetFiles(@"F:\高圆圆");
            for (int i = 0; i < strpath.Lengthi++)
            {
                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 senderEventArgs 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 senderEventArgs 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<=dayi++)
            {
                cboDays.Items.Add(i+"日");
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值