C# 中的地球计算器
Days on earth Calculator in C#
我一直在尝试用 C# 创建一个地球上的天数计算器,用户可以在其中以 MM/DD/YYYY 格式输入他们的生日,并找出他们在地球上待了多长时间(以天为单位) .我已经查看了 2 年前有人发布的一个类似问题,标题为“用户存活了多少天计算器”。但我的问题在于格式异常。这是我尝试做的(我对此很陌生):
Console.WriteLine("Welcome to the Days on Earth Finder!" +
"\nPlease input your birthday(MM/DD/YYY):");
Console.ReadLine();
//string myBirthday = Console.ReadLine();
//DateTime mB = Convert.ToDateTime(myBirthday);
//DateTime myBirthday = DateTime.Parse(Console.ReadLine());
string myBirthday = Console.ReadLine();
DateTime mB = DateTime.Parse(myBirthday); //This line is where the error occurs
TimeSpan myAge = DateTime.Now.Subtract(mB);
Console.WriteLine("You are " + myAge.TotalDays + " days old!");
Console.ReadLine();
如果有帮助,我将之前的尝试注释掉了。
出现的错误如下:
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll
Additional information: String was not recognized as a valid DateTime.
虽然当我给它一个字符串文字时它起作用了,例如“8/10/1995”。
DateTime myBirthday = DateTime.Parse("8/10/1995");
TimeSpan myAge = DateTime.Now.Subtract(myBirthday);
Console.WriteLine("You are " + myAge.TotalDays + " days old!");
Console.ReadLine();
另外,如果有帮助,我正在使用 Visual Studio 2015 Community RC。
你可以试试这样:
string birthDateString = "5/2/1992";
DateTime birthDate;
if (DateTime.TryParse(birthDateString, out birthDate))
{
DateTime today = DateTime.Now;
Console.WriteLine("You are {0} days old", (today - birthDate).Days);
}
else Console.WriteLine("Incorrect date format!");
您有两个 Console.ReadLine();
语句。
您可能需要按两次回车键。
去掉第一个Console.ReadLine();
,填上日期就可以了
您将其编码为读取输入两次,第二次是当您使用输入作为日期时,但随后您可能按下了回车键(这不是日期)并且它给出了 FormatException。
您应该删除第一个 ReadLine()
。
Console.WriteLine("Welcome to the Days on Earth Finder!" +
"\nPlease input your birthday(MM/DD/YYY):");
//Console.ReadLine();
//string myBirthday = Console.ReadLine();
//DateTime mB = Convert.ToDateTime(myBirthday);
//DateTime myBirthday = DateTime.Parse(Console.ReadLine());
string myBirthday = Console.ReadLine();
DateTime mB = DateTime.Parse(myBirthday);
//This line is where the error occurs
TimeSpan myAge = DateTime.Now.Subtract(mB);
Console.WriteLine("You are " + myAge.TotalDays + " days old!");
Console.ReadLine();
我一直在尝试用 C# 创建一个地球上的天数计算器,用户可以在其中以 MM/DD/YYYY 格式输入他们的生日,并找出他们在地球上待了多长时间(以天为单位) .我已经查看了 2 年前有人发布的一个类似问题,标题为“用户存活了多少天计算器”。但我的问题在于格式异常。这是我尝试做的(我对此很陌生):
Console.WriteLine("Welcome to the Days on Earth Finder!" +
"\nPlease input your birthday(MM/DD/YYY):");
Console.ReadLine();
//string myBirthday = Console.ReadLine();
//DateTime mB = Convert.ToDateTime(myBirthday);
//DateTime myBirthday = DateTime.Parse(Console.ReadLine());
string myBirthday = Console.ReadLine();
DateTime mB = DateTime.Parse(myBirthday); //This line is where the error occurs
TimeSpan myAge = DateTime.Now.Subtract(mB);
Console.WriteLine("You are " + myAge.TotalDays + " days old!");
Console.ReadLine();
如果有帮助,我将之前的尝试注释掉了。 出现的错误如下:
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll
Additional information: String was not recognized as a valid DateTime.
虽然当我给它一个字符串文字时它起作用了,例如“8/10/1995”。
DateTime myBirthday = DateTime.Parse("8/10/1995");
TimeSpan myAge = DateTime.Now.Subtract(myBirthday);
Console.WriteLine("You are " + myAge.TotalDays + " days old!");
Console.ReadLine();
另外,如果有帮助,我正在使用 Visual Studio 2015 Community RC。
你可以试试这样:
string birthDateString = "5/2/1992";
DateTime birthDate;
if (DateTime.TryParse(birthDateString, out birthDate))
{
DateTime today = DateTime.Now;
Console.WriteLine("You are {0} days old", (today - birthDate).Days);
}
else Console.WriteLine("Incorrect date format!");
您有两个 Console.ReadLine();
语句。
您可能需要按两次回车键。
去掉第一个Console.ReadLine();
,填上日期就可以了
您将其编码为读取输入两次,第二次是当您使用输入作为日期时,但随后您可能按下了回车键(这不是日期)并且它给出了 FormatException。
您应该删除第一个 ReadLine()
。
Console.WriteLine("Welcome to the Days on Earth Finder!" +
"\nPlease input your birthday(MM/DD/YYY):");
//Console.ReadLine();
//string myBirthday = Console.ReadLine();
//DateTime mB = Convert.ToDateTime(myBirthday);
//DateTime myBirthday = DateTime.Parse(Console.ReadLine());
string myBirthday = Console.ReadLine();
DateTime mB = DateTime.Parse(myBirthday);
//This line is where the error occurs
TimeSpan myAge = DateTime.Now.Subtract(mB);
Console.WriteLine("You are " + myAge.TotalDays + " days old!");
Console.ReadLine();