C# 局部变量不断获取错误消息、新的datetime时间戳,并且所有代码都不会显示在cmd.exe中
我对这段代码有3个问题,我想寻求一些帮助C# 局部变量不断获取错误消息、新的datetime时间戳,并且所有代码都不会显示在cmd.exe中,c#,C#,我对这段代码有3个问题,我想寻求一些帮助 我似乎每次在person2中都会收到一条错误消息,称为myAge和DateOfBirth的局部变量已经在这个范围中定义了?这怎么可能 我的第二个问题是,我似乎无法从球员的出生日期中删除时间戳。。我只需要日期,不需要时间戳 我的第三个也是最后一个问题是,所有代码不会同时显示在cmd.exe中?我必须按enter键才能显示下一个玩家,但我想同时显示所有玩家 有人能帮忙吗?提前谢谢你 public enum Gendertype { Male, Fem
public enum Gendertype { Male, Female };
public class Person
{
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
public string Nationality { get; set; }
public Gendertype Gender { get; set; }
public Person(string fn, string mn, string ln, DateTime dob, string n, Gendertype g)
{
FirstName = fn;
MiddleName = mn;
LastName = ln;
DateOfBirth = dob;
Nationality = n;
Gender = g;
}
}
class Program
{
static void Main()
{
Person person1 = new Person("Rafael" + "\n", "" + "\n", "Nadal" + "\n", new DateTime(1986,06, 03), "Spanish" + "\n", Gendertype.Male);
Console.WriteLine("Player 1: \n First name = {0} Middle name = {1 } Last name = {2} Date of birth = {3} \n Nationality = {4} Gender = {5}", person1.FirstName, person1.MiddleName, person1.LastName, person1.DateOfBirth, person1.Nationality, person1.Gender);
DateTime DateOfBirth = DateTime.Parse("1986/06/03");
TimeSpan myAge = DateTime.Now.Subtract(DateOfBirth);
Console.WriteLine(" Age:");
Console.WriteLine(myAge.TotalDays/365);
Console.ReadLine();
Person person2 = new Person("Rafael" + "\n", "" + "\n", "Nadal" + "\n", new DateTime(1988, 07, 04), "Spanish" + "\n", Gendertype.Male);
Console.WriteLine("Player 2: \n First name = {0} Middle name = {1 } Last name = {2} Date of birth = {3} \n Nationality = {4} Gender = {5}", person2.FirstName, person2.MiddleName, person2.LastName, person2.DateOfBirth, person2.Nationality, person2.Gender);
DateTime dob = DateTime.Parse("1988/07/04");
TimeSpan Age = DateTime.Now.Subtract(DateOfBirth);
Console.WriteLine(" Age:");
Console.WriteLine(myAge.TotalDays / 365);
Console.ReadLine();
person2.FirstName = "Molly";
Console.WriteLine("Player 2: \n First name = {0} Middle name = {1 } Last name = {2} Date of birth = {3} \n Nationality = {4} Gender = {5}", person1.FirstName, person1.MiddleName, person1.LastName, person1.DateOfBirth, person1.Nationality, person1.Gender);
Console.WriteLine("person1 Name = {0} Age = {1}", person2.FirstName, person2.DateOfBirth);
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
}
DateTime-DateOfBirth=DateTime.Parse(“1986/06/03”)代码>
TimeSpan myAge=DateTime.Now.Subtract(出生日期)代码>
DateTime
和TimeSpan
部分。这样,您就不会试图用相同的名称声明新变量,而是使用旧的变量
DateTime.Now
计算年龄,其中包括小时、秒和毫秒。如果只想获取日期,请尝试DateTime.Today()。对于文本友好的输出,您应该查看DateTime格式以获得正确的输出()public enum Gendertype { Male, Female };
public class Person
{
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
public string Nationality { get; set; }
public Gendertype Gender { get; set; }
public int Age
{
return DateTime.Now.Subtract(DateOfBirth).TotalDays / 365;
}
public Person(string fn, string mn, string ln, DateTime dob, string n, Gendertype g)
{
FirstName = fn;
MiddleName = mn;
LastName = ln;
DateOfBirth = dob;
Nationality = n;
Gender = g;
}
}
class Program
{
static void Main()
{
Person person1 = new Person("Rafael" + "\n", "" + "\n", "Nadal" + "\n", new DateTime(1986,06, 03), "Spanish" + "\n", Gendertype.Male);
Console.WriteLine("Player 1: \n First name = {0} Middle name = {1 } Last name = {2} Date of birth = {3} \n Nationality = {4} Gender = {5}", person1.FirstName, person1.MiddleName, person1.LastName, person1.DateOfBirth, person1.Nationality, person1.Gender);
Console.WriteLine(" Age:");
Console.WriteLine(person1.Age);
//Console.ReadLine(); this waits for your enter key
Person person2 = new Person("Rafael" + "\n", "" + "\n", "Nadal" + "\n", new DateTime(1988, 07, 04), "Spanish" + "\n", Gendertype.Male);
Console.WriteLine("Player 2: \n First name = {0} Middle name = {1 } Last name = {2} Date of birth = {3} \n Nationality = {4} Gender = {5}", person2.FirstName, person2.MiddleName, person2.LastName, person2.DateOfBirth, person2.Nationality, person2.Gender);
Console.WriteLine(" Age:");
Console.WriteLine(person2.Age);
//Console.ReadLine(); this waits for your enter key
person2.FirstName = "Molly";
Console.WriteLine("Player 2: \n First name = {0} Middle name = {1 } Last name = {2} Date of birth = {3} \n Nationality = {4} Gender = {5}", person1.FirstName, person1.MiddleName, person1.LastName, person1.DateOfBirth, person1.Nationality, person1.Gender);
Console.WriteLine("person1 Name = {0} Age = {1}", person2.FirstName, person2.DateOfBirth.ToShortDateString());
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
1) 如果错误消息是您无法共享的秘密,我们将无法帮助您。2) DateTime类型始终由日期和时间组成-如果需要特定的输出格式(如“yyyy/MM/dd”),请在呈现输出时指定它。3) 您确实放置了那些
Console.ReadLine()代码>在那里,这就是控制台所做的。1)您向我们展示的代码没有显示此问题。2) Console.WriteLine
使用,您可以指定输出的格式如下:出生日期={3:yyyy/MM/dd}
,3),因为您将Console.ReadLine()放在代码>在每一个之后,使其暂停,直到您点击回车键;阅读“如果标准输入设备是键盘,ReadLine方法会一直阻塞,直到用户按下Enter键。”请注意,您的年龄计算也不正确。请参见和。