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

C# Prinitng modified date range in console

我需要像示例中那样在控制台中接受输入参数和打印日期范围:

输入:“01.01.2017 05.01.2017”

输出:“01 - 05.01.2017”

因此,如您所见,日期必须用点分隔并在它们之间用破折号打印。更重要的是,如果开始日期和结束日期的月份和年份相同,则只打印一次。

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

只需根据需要格式化日期并添加额外的案例检查。

        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();