注册 登录
编程论坛 C# 论坛

为什么我输入2月的时候总是不显示天数,求大神解答!!!

a4709 发布于 2014-03-26 17:59, 411 次点击
int  year,month;
            string a="";
            
            Console.WriteLine("请输入年份和月份");
            year = Convert.ToInt32(Console.ReadLine());
            month = Convert.ToInt32(Console.ReadLine());
            if (month <= 12 && month >= 1)            
                switch (month)
                {
                    case 1:
                    case 3:
                    case 5:
                    case 7:
                    case 8:
                    case 10:
                    case 12: a = "31"; break;
                    case 4:
                    case 6:
                    case 9:
                    case 11: a = "30"; break;
                }               
                Console.WriteLine("{0}年{1}月有{2}天", year, month, a);
            if (month >12||month <1)               
                Console.WriteLine("非法数据");
                Console.ReadLine();                 
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
            {
                switch (month)
                {
                    case 2: a = "29"; break;
                }
                        Console.WriteLine("{0}年{1}月有{2}天", year, month, a);
               
               
                                   
                       Console.ReadLine();
            }
3 回复
#2
wp2319572014-03-26 18:49
逻辑挺乱
#3
wangnannan2014-03-27 10:58
程序代码:
switch (month)
                {
                    case 1:
                    case 3:
                    case 5:
                    case 7:
                    case 8:
                    case 10:
                    case 12: a = "31"; break;
                    case 4:
                    case 6:
                    case 9:
                    case 11: a = "30"; break;
                }               
这里面没有2 显示什么啊
#4
步向巅峰2014-03-28 13:34
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
            {
                switch (month)
                {
                    case 2: a = "29"; break;
                }
                        Console.WriteLine("{0}年{1}月有{2}天", year, month, a);
               
               
                                   
                       Console.ReadLine();
            }
你在上面的switch中没有case 2
在这段代码中定义的也是在闰年的时候输出二月的天数,那么如果你输入的年份不是闰年的话没有办法输出
1