【发布时间】:2015-11-05 12:39:18
【问题描述】:
我正在构建一个日历,我想检查用户输入的日期是否有效。我已经做到了这一点,现在我不知道如何重复“无效日期”消息,直到它是有效的。
我的代码:
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声明。检查它的文档。 -
你需要解释你的意思,“如何重复“无效日期”的消息,直到它是一个有效的消息”我不遵循。
-
你可以使用while。并且您不需要日期格式以及 TryParseExact。相反,您可以简单地使用 TryParse。例如,如果当前文化是 en-US,那么用户可能想要输入“2015 年 1 月 1 日”,这是一个有效日期。
-
你需要使用while语句...没看到它是一个控制台应用程序,“Console.ReadLine()”
-
更正我的评论,.Net 框架不够聪明,无法看到 2015 年 1 月 1 日是有效日期。 2015 年 1 月 1 日是。