【发布时间】:2014-07-30 05:05:36
【问题描述】:
为了以亲身实践的方式学习 C#,我开始完成我在网上找到的这些作业...
http://www1.cs.columbia.edu/~lok/csharp/assignments.html
我被困在练习 1,问题 3 中。如何从控制台请求日期,然后根据给定的标准进行检查?在这种情况下,请检查日期是否在今天之后,如果为真则提供“无效”消息。
我的代码目前如下所示。我觉得逻辑在那里,但与范围有关的事情不会让它编译 - userBirthdate 在循环之外似乎无法访问。
我相信还有一个更简单的解决方案。
非常感谢任何帮助 - 谢谢大家!
//Set today's date as a variable
DateTime todayDate = DateTime.Today;
DateTime userBirthdate;
//Ask user for birth date
Console.Write("Please enter your date of birth (dd/mm/yy): ");
//Validate the input and set as a variable
bool inputValid = false;
while (inputValid != true)
{
if (DateTime.Parse(Console.ReadLine()) > todayDate)
{
Console.Write("Invalid Date. Please enter your date of birth (dd/mm/yy): ");
}
else
{
userBirthdate = DateTime.Parse(Console.ReadLine());
Console.WriteLine(userBirthdate);
inputValid = true;
}
}
//Calculate user age
int userAge = todayDate.Year - userBirthdate.Year;
if (userBirthdate > todayDate.AddYears(-userAge)) userAge--;
//Output
Console.WriteLine("You are {0} years old!", userAge);
Console.ReadLine();
【问题讨论】:
-
啊哈哈,将第一个答案标记为解决方案,但你们都解决了多个问题。非常感谢!
标签: c# validation loops datetime input