检查用户输入的日期是否有效
Check if user input is a valid date
我正在构建一个日历,我想检查用户输入的日期是否有效。我已经走到这一步了,现在我不知道如何重复消息 "invalid date" 直到它成为有效消息。
我的代码:
var dateFormats = new[] {"dd.MM.yyyy", "dd-MM-yyyy", "dd/MM/yyyy"};
Console.Write("\nSet your date: ");
string readAddMeeting = Console.ReadLine();
DateTime scheduleDate;
bool validDate = DateTime.TryParseExact(
readAddMeeting,
dateFormats,
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.None,
out scheduleDate);
if (validDate)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Valid date");
Console.ForegroundColor = ConsoleColor.White;
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Invalid date: \"{0}\"", readAddMeeting);
Console.ForegroundColor = ConsoleColor.White;
}
使用 do/while
循环:
do
{
... your code here
}while(!validDate);
使用 do-While 循环:
do{
var dateFormats = new[] {"dd.MM.yyyy", "dd-MM-yyyy", "dd/MM/yyyy"};
Console.Write("\nSet your date: ");
string readAddMeeting = Console.ReadLine();
DateTime scheduleDate;
bool validDate = DateTime.TryParseExact(
readAddMeeting,
dateFormats,
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.None,
out scheduleDate);
if (validDate)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Valid date");
Console.ForegroundColor = ConsoleColor.White;
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Invalid date: \"{0}\"", readAddMeeting);
Console.ForegroundColor = ConsoleColor.White;
}
}while(!validDate)
试试这样的东西:
var dateFormats = new[] {"dd.MM.yyyy", "dd-MM-yyyy", "dd/MM/yyyy"};
bool validate = true;
while (validate) // Loop indefinitely
{
Console.Write("\nSet your date: "); // Prompt
string readAddMeeting = Console.ReadLine(); // Get string from user
DateTime scheduleDate;
if(DateTime.TryParseExact(readAddMeeting,dateFormats, DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out scheduleDate))
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Valid date");
validate = false;
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Invalid date: \"{0}\"", readAddMeeting);
}
Console.ForegroundColor = ConsoleColor.White;
}
我正在构建一个日历,我想检查用户输入的日期是否有效。我已经走到这一步了,现在我不知道如何重复消息 "invalid date" 直到它成为有效消息。
我的代码:
var dateFormats = new[] {"dd.MM.yyyy", "dd-MM-yyyy", "dd/MM/yyyy"};
Console.Write("\nSet your date: ");
string readAddMeeting = Console.ReadLine();
DateTime scheduleDate;
bool validDate = DateTime.TryParseExact(
readAddMeeting,
dateFormats,
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.None,
out scheduleDate);
if (validDate)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Valid date");
Console.ForegroundColor = ConsoleColor.White;
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Invalid date: \"{0}\"", readAddMeeting);
Console.ForegroundColor = ConsoleColor.White;
}
使用 do/while
循环:
do
{
... your code here
}while(!validDate);
使用 do-While 循环:
do{
var dateFormats = new[] {"dd.MM.yyyy", "dd-MM-yyyy", "dd/MM/yyyy"};
Console.Write("\nSet your date: ");
string readAddMeeting = Console.ReadLine();
DateTime scheduleDate;
bool validDate = DateTime.TryParseExact(
readAddMeeting,
dateFormats,
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.None,
out scheduleDate);
if (validDate)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Valid date");
Console.ForegroundColor = ConsoleColor.White;
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Invalid date: \"{0}\"", readAddMeeting);
Console.ForegroundColor = ConsoleColor.White;
}
}while(!validDate)
试试这样的东西:
var dateFormats = new[] {"dd.MM.yyyy", "dd-MM-yyyy", "dd/MM/yyyy"};
bool validate = true;
while (validate) // Loop indefinitely
{
Console.Write("\nSet your date: "); // Prompt
string readAddMeeting = Console.ReadLine(); // Get string from user
DateTime scheduleDate;
if(DateTime.TryParseExact(readAddMeeting,dateFormats, DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out scheduleDate))
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Valid date");
validate = false;
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Invalid date: \"{0}\"", readAddMeeting);
}
Console.ForegroundColor = ConsoleColor.White;
}