我需要在控制台中接受输入参数和打印日期范围,例如:
输入:" 01.01.2017 05.01.2017"
输出:" 01 - 05.01.2017"
因此,当您看到日期必须用点分隔并在它们之间用破折号打印。更重要的是,如果开始日期和结束日期都具有相同的月份和年份,则这些日期和年份仅打印一次。
有没有人可以提出实现这个目标的好方法?
答案 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();