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();
我需要像示例中那样在控制台中接受输入参数和打印日期范围:
输入:“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();