zoukankan      html  css  js  c++  java
  • 日期功能

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 日期功能扩展
    {
        class Program
        {
            static void Main(string[] args)
            {
                //用户输入年、月、日,判断用户输入的年月日是否正确
                //功能扩展:如果用户输入的日期正确,那么输出此日期是当年的第几天
    
                //用户输入年份
                Console.Write("请输入年份(0-9999):");
                int y = Convert.ToInt32(Console.ReadLine());
    
                bool isok = false; //如果为true,说明是闰年,如果为false,说明不是闰年
                int m1 = 31, m2 = 28, m3 = 31, m4 = 30, m5 = 31, m6 = 30, m7 = 31, m8 = 31, m9 = 30, m10 = 31, m11 = 30;
                int sum = 0;//放置当前第几天
    
                //判断年份是否正确,0-9999
                if (y >= 0 && y <= 9999)//年份正确
                {
                    //判断是否是闰年
                    if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)//说明当前是闰年
                    {
                        isok = true;
                    }
                    else //不是闰年
                    {
                        isok = false;
                    }
    
                    //用户输入月份
                    Console.Write("请输入月份(1-12):");
                    int m = Convert.ToInt32(Console.ReadLine());
    
                    //判断月份是否正确,1-12
                    if (m >= 1 && m <= 12)//月份正确
                    {
                        //用户输入日期
                        Console.Write("请输入日期(1-31):");
                        int d = Convert.ToInt32(Console.ReadLine());
    
                        //判断日期是否正确,先看用户输入的月份是大月还是小月,先排除2月
                        //1.大,3.大,5.大,7.大,8.大,10.大,12.大
                        //4.小,6.小,9.小,11.小
                        //2.特殊
    
                        //1.31,2,28/29,3.31,4.30,5.31,6.30,7.31,8.31,9.30
                        //10.31,11.30
    
                        //如果此条件成立,那么说明是大月
                        if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
                        {
                            if (d <= 31 && d > 0)//日期输入正确
                            {
                                Console.WriteLine("日期输入正确!");
                                Console.WriteLine(y + "" + m + "" + d + "");
                                //计算当前日期是当年的第几天
                                if (isok)//说明当前是闰年
                                {
                                    m2 = 29;
                                    switch (m)
                                    {
                                        case 1: sum = d; break;
                                        case 2: sum = m1 + d; break;
                                        case 3: sum = m1 + m2 + d; break;
                                        case 4: sum = m1 + m2 + m3 + d; break;
                                        case 5: sum = m1 + m2 + m3 + m4 + d; break;
                                        case 6: sum = m1 + m2 + m3 + m4 + m5 + d; break;
                                        case 7: sum = m1 + m2 + m3 + m4 + m5 + m6 + d; break;
                                        case 8: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + +d; break;
                                        case 9: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + d; break;
                                        case 10: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + d; break;
                                        case 11: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + d; break;
                                        case 12: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + d; break;
                                    }
                                    Console.WriteLine(d + "天是" + y + "的第" + sum + "");
                                }
                                else//不是闰年
                                {
                                    m2 = 28;
                                    switch (m)
                                    {
                                        case 1: sum = d; break;
                                        case 2: sum = m1 + d; break;
                                        case 3: sum = m1 + m2 + d; break;
                                        case 4: sum = m1 + m2 + m3 + d; break;
                                        case 5: sum = m1 + m2 + m3 + m4 + d; break;
                                        case 6: sum = m1 + m2 + m3 + m4 + m5 + d; break;
                                        case 7: sum = m1 + m2 + m3 + m4 + m5 + m6 + d; break;
                                        case 8: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + +d; break;
                                        case 9: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + d; break;
                                        case 10: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + d; break;
                                        case 11: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + d; break;
                                        case 12: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + d; break;
                                    }
                                    Console.WriteLine(d + "天是" + y + "的第" + sum + "");
                                }
                            }
                            else
                            {
                                Console.WriteLine("日期输入有误!");
                            }
                        }
                        else if (m == 4 || m == 6 || m == 9 || m == 11)//输入的是小月
                        {
                            if (d <= 30 && d > 0)//日期输入正确
                            {
                                Console.WriteLine("日期输入正确!");
                                Console.WriteLine(y + "" + m + "" + d + "");
    
                                //计算当前日期是当年的第几天
                                if (isok)//说明当前是闰年
                                {
                                    m2 = 29;
                                    switch (m)
                                    {
                                        case 1: sum = d; break;
                                        case 2: sum = m1 + d; break;
                                        case 3: sum = m1 + m2 + d; break;
                                        case 4: sum = m1 + m2 + m3 + d; break;
                                        case 5: sum = m1 + m2 + m3 + m4 + d; break;
                                        case 6: sum = m1 + m2 + m3 + m4 + m5 + d; break;
                                        case 7: sum = m1 + m2 + m3 + m4 + m5 + m6 + d; break;
                                        case 8: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + +d; break;
                                        case 9: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + d; break;
                                        case 10: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + d; break;
                                        case 11: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + d; break;
                                        case 12: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + d; break;
                                    }
                                    Console.WriteLine(d + "天是" + y + "的第" + sum + "");
                                }
                                else//不是闰年
                                {
                                    m2 = 28;
                                    switch (m)
                                    {
                                        case 1: sum = d; break;
                                        case 2: sum = m1 + d; break;
                                        case 3: sum = m1 + m2 + d; break;
                                        case 4: sum = m1 + m2 + m3 + d; break;
                                        case 5: sum = m1 + m2 + m3 + m4 + d; break;
                                        case 6: sum = m1 + m2 + m3 + m4 + m5 + d; break;
                                        case 7: sum = m1 + m2 + m3 + m4 + m5 + m6 + d; break;
                                        case 8: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + +d; break;
                                        case 9: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + d; break;
                                        case 10: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + d; break;
                                        case 11: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + d; break;
                                        case 12: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + d; break;
                                    }
                                    Console.WriteLine(d + "天是" + y + "的第" + sum + "");
                                }
                            }
                            else
                            {
                                Console.WriteLine("日期输入有误!");
                            }
                        }
                        else if (m == 2)//如果是2月,那么很麻烦
                        {
                            //判断是否是闰年
                            //年份可以被4整除 并且 不能被100整除
                            //特殊年:或者,年份可以被400整除
                            if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)//说明当前是闰年
                            {
                                if (d <= 29 && d > 0)//日期正确
                                {
                                    Console.WriteLine("日期输入正确!");
                                    Console.WriteLine(y + "" + m + "" + d + "");
                                    Console.WriteLine(y + "年是闰年!");
    
                                    m2 = 29;
                                    switch (m)
                                    {
                                        case 1: sum = d; break;
                                        case 2: sum = m1 + d; break;
                                        case 3: sum = m1 + m2 + d; break;
                                        case 4: sum = m1 + m2 + m3 + d; break;
                                        case 5: sum = m1 + m2 + m3 + m4 + d; break;
                                        case 6: sum = m1 + m2 + m3 + m4 + m5 + d; break;
                                        case 7: sum = m1 + m2 + m3 + m4 + m5 + m6 + d; break;
                                        case 8: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + +d; break;
                                        case 9: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + d; break;
                                        case 10: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + d; break;
                                        case 11: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + d; break;
                                        case 12: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + d; break;
                                    }
                                    Console.WriteLine(d + "天是" + y + "的第" + sum + "");
                                }
                                else//日期错误
                                {
                                    Console.WriteLine("日期输入有误!");
                                }
                            }
                            else//说明不是闰年
                            {
                                if (d <= 28 && d > 0)//日期正确
                                {
                                    Console.WriteLine("日期输入正确!");
                                    Console.WriteLine(y + "" + m + "" + d + "");
                                    Console.WriteLine(y + "年不是闰年!");
    
                                    m2 = 28;
                                    switch (m)
                                    {
                                        case 1: sum = d; break;
                                        case 2: sum = m1 + d; break;
                                        case 3: sum = m1 + m2 + d; break;
                                        case 4: sum = m1 + m2 + m3 + d; break;
                                        case 5: sum = m1 + m2 + m3 + m4 + d; break;
                                        case 6: sum = m1 + m2 + m3 + m4 + m5 + d; break;
                                        case 7: sum = m1 + m2 + m3 + m4 + m5 + m6 + d; break;
                                        case 8: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + +d; break;
                                        case 9: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + d; break;
                                        case 10: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + d; break;
                                        case 11: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + d; break;
                                        case 12: sum = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + d; break;
                                    }
                                    Console.WriteLine(d + "天是" + y + "的第" + sum + "");
                                }
                                else//日期错误
                                {
                                    Console.WriteLine("日期输入有误!");
                                }
                            }
                        }
                    }
                    else//月份错误
                    {
                        Console.WriteLine("月份输入有误!");
                    }
                }
                else//年份输入错误
                {
                    Console.WriteLine("年份输入有误!");
                }
    
                Console.ReadLine();
            }
        }
    }
  • 相关阅读:
    01模拟面试面试题汇总
    第一轮面试
    大觅网03Day
    大觅网02Day
    大觅网01Day
    树状数组
    HH的项链
    小z的袜子
    分块
    扩展欧几里德
  • 原文地址:https://www.cnblogs.com/tonyhere/p/5469780.html
Copyright © 2011-2022 走看看