嵌套 练习 习题6

6、
让用户输入日期,判断输入的日期是否正确

0-9999,月1-12,日按照月份来,需要判断闰年

            //判断是否是闰年有以下几种情况(排除特殊年份):
            //年份可以被4整除 并且 能被100整除 并且 能被400整除 
            //年份可以被4整除
            //年份可以被4整除 并且 不能被100整除
            //年份可以被400整除

            //1、接收用户输入的信息
            Console.Write("请输入年份:");
            int a = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入月份:");
            int b = Convert.ToInt32(Console.ReadLine());
            Console.Write("请输入日期:");
            int c = Convert.ToInt32(Console.ReadLine());

            //2、判断,输出 ((d == 0) && (e == 0) && (f == 0))
 
            int d = a % 4, e = a % 100, f = a % 400;

            if (a > 0 && a < 9999)//判断输入的年份是否正确
            {
                if (((d == 0) && (e == 0) && (f == 0)) || (d == 0) || (d == 0 && e != 0) || (f == 0))//判断输入的年份是否是闰年
                {
                    if (b > 0 && b <= 12)//判断月份输入是否正确
                    {
                        if (
                            (((b == 1) || (b == 3) || (b == 5) || (b == 7) || (b == 8) || (b == 10) || (b == 12) && (c <= 31 && c > 0))
                            || ((b == 4) || (b == 6) || (b == 9) || (b == 11)) && (c <= 30 && c > 0)) || ((c > 0 && c <= 29) && (b == 2))
                            ) //判断日期输入是否正确
                        {
                            Console.WriteLine(a + "年是闰年.");
                        }
                        else
                        {
                            Console.WriteLine("输入的日期有误!");
                        }
                    }
                    else
                    {
                        Console.WriteLine("输入的月份有误!");
                    }
                }
                else   //输入的年份是平年
                {
                    if (b > 0 && b <= 12)//判断月份输入是否正确
                    {
                        if (
                            (((b == 1) || (b == 3) || (b == 5) || (b == 7) || (b == 8) || (b == 10) || (b == 12) && (c <= 31 && c > 0))
                            || ((b == 4) || (b == 6) || (b == 9) || (b == 11)) && (c <= 30 && c > 0)) || ((c > 0 && c <= 28) && (b == 2))
                            ) //判断日期输入是否正确
                        {
                            Console.WriteLine(a + "年是平年");
                        }
                        else
                        {
                            Console.WriteLine("输入的日期有误!");
                        }
                    }
                    else
                    {
                        Console.WriteLine("输入的月份有误!");
                    }
                }
            }
            else  //年份输入错误
            {
                Console.WriteLine("输入的年份有误!");
            }
            Console.ReadKey();

原文地址:https://www.cnblogs.com/123lucy/p/5514778.html