c# comboBox下拉控件,闰年练习

 获取选择项的文本 :

combox.SelectedItem.ToString()

1.加载窗体时即生成年份

 private void Form1_Load(object sender, EventArgs e)
        {
            int year = Convert.ToInt32(DateTime.Now.Year.ToString());
            for (int i = 0; i <= 100; i++)
            {
                comboBox1.Items.Add(year-i+"年");
            }

2.年份改变时月份随之生成

 private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            comboBox2.Items.Clear(); // 天数也清除
            comboBox3.Items.Clear();
            for (int i = 1; i < 13; i++)
            {
                comboBox2.Items.Add(i + "月");
            }

3.月份改变生成天数,判断是否为闰年 

private void comboBox2_SelectedValueChanged(object sender, EventArgs e)
        {
            //先清除
            comboBox3.Items.Clear();

            //substring 只能正截取,不能从后面截取,用split分割成数组,分割符被空格填充,下标取值
            //或用splitstringoptions属性去空格
            int month =Convert.ToInt32(comboBox2.SelectedItem.ToString().Split(new char[]{'月'})[0]);
            int year = Convert.ToInt32(comboBox1.SelectedItem.ToString().Split(new char[] {'年'})[0]);
            int day=0 ;
            switch (month)
            {
                case 1:     
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    day = 31;
                    break;
                case 2:    //闰年判定:1.能被4整除,但不能被100整除; 2.能被400整除;
                    if (year%400==0 || (year%100!=0 && year%4==0))
                    {
                        day = 29;
                    }
                    else 
                    {
                        day = 28;
                    }
                    break;
              default:
                    day = 30;
                    break;
            }
            for (int i = 0; i < day; i++)
            {
                comboBox3.Items.Add(i + 1+"天");
            }

            if (day==29)
            {
                label4.Text = year + "年是闰年," + "2月有29天";
            }
            else
            {
                label4.Text = year + "年不是闰年," + "2月有28天";
            }
            

        }

  

posted @ 2021-04-13 23:33  遥月  阅读(329)  评论(0)    收藏  举报