C#在控制台中打印修改日期范围

时间:2018-04-04 12:06:21

标签: c# date datetime console-application date-range

我需要在控制台中接受输入参数和打印日期范围,例如:

输入:" 01.01.2017 05.01.2017"

输出:" 01 - 05.01.2017"

因此,当您看到日期必须用点分隔并在它们之间用破折号打印。更重要的是,如果开始日期和结束日期都具有相同的月份和年份,则这些日期和年份仅打印一次。

有没有人可以提出实现这个目标的好方法?

1 个答案:

答案 0 :(得分:1)

只需根据需要格式化日期,并为案例添加附加检查。

        DateTime date1 = new DateTime();
        DateTime date2 = new DateTime();

//while not valid input dates format...
        bool valid = false;
        while (!valid)
        {
            Console.WriteLine("Enter start date:");
            string dateEntered1 = Console.ReadLine();
            Console.WriteLine("Enter end date:");
            string dateEntered2 = Console.ReadLine();

             bool isvalidDate1 = DateTime.TryParse(dateEntered1,out date1);
            bool isvalidDate2 = DateTime.TryParse(dateEntered2,out date2);
//check if date parsing was sucess
            if(isvalidDate1 && isvalidDate2)
            {
                valid = true;
            }
            else
            {
                Console.WriteLine("Dates entered is in incorrect format!");

            }
        }
        string period = "";
        if (date1.Month == date2.Month && date1.Year == date2.Year)
        {
            period = string.Format("{0} - {1}", date1.ToString("dd."), date2.ToString("dd.MM.yyyy"));
        }
        else
        {
            period = string.Format("{0} - {1}", date1.ToString("dd.MM.yyyy"), date2.ToString("dd.MM.yyyy"));
        }
        Console.Write(period);
        Console.Read();