到目前為止,我做了這樣的代碼:
Console.WriteLine("嘿,你叫什么?")。
Console.Write("輸入你的名字:")。
string YourName;
YourName = Console.ReadLine();
Console.WriteLine("Wow what a nice name!")。
Console.ReadLine();
Console.WriteLine("你的年齡呢?")。
Console.Write("輸入你的出生年份:"/span>)。
string BirthYear;
BirthYear = Console.ReadLine();
Console.Write("輸入你的出生月份(數字不是實際月份)。")。)
string BirthMonth;
BirthMonth = Console.ReadLine();
Console.Write("輸入你的出生日期:")。
string BirthDate;
BirthDate = Console.ReadLine();
DateTime myBirthAge = DateTime.Parse(BirthMonth BirthDate BirthYear);
TimeSpan myAge = DateTime.Now.Subtract(myBirthAge);
Console.WriteLine(myAge.TotalDays);
Console.ReadLine()。
我是一個編碼的初學者,我不知道如何使它在我問及某人的出生日期、出生年份和出生月份時,能夠計算出他們活著的天數。我試著把字串放到DateTime.Parse();和其他方法中,但它沒有起作用。我怎樣才能解決這個問題呢?
uj5u.com熱心網友回復:
你可以創建一個日期字串并呼叫Parse,或者將輸入轉換為整數并使用DateTime建構式。我更傾向于后者,因為它消除了日期決議中固有的任何模糊性:
DateTime myBirthAge = new DateTime(int.Parse(BirthYear),
int.Parse(BirthMonth)。
int.Parse(BirthDay))。
uj5u.com熱心網友回復:
我想先說一下,鑒于你對日期值的分級方式,我個人會選擇D Stanley的這個解決方案而不是這個答案。我只是提供這個答案,以便你能理解為什么你的代碼會失敗。
你的代碼(DateTime.Parse(BirthMonth BirthDate BirthYear);)存在的問題是,所提供的日期將有效地成為一個新的日期。
是,所提供的日期將有效地成為以下字串值:
03011923。
或者更糟:
311923[/span
你的系統將(推測)期待格式為MM/dd/yyyy的日期,所以它不會理解這些值。這在我的系統上也行不通,因為我的地區設定是英語(英國)(因此默認的執行緒文化是英語英國),所以我的系統會期待dd/MM/yyyy。
我們可以通過向DateTime.Parse傳遞一個特定的文化來改善不同文化的問題。例如,我們可以使用不變的文化,它希望日期為MM/dd/yyyy格式:
DateTime.Parse(BirthMonth BirthDate BirthYear, System.Globalization.CultureInfo.InvariantCulture) 。
但是,我們仍然有一個問題,那就是日期的格式化問題。你要用分隔符來組合各部分的內容:
BirthMonth "/"/span> BirthDate "/"/span> BirthYear
或者更好的是:
$"{BirthMonth}/{BirthDate}/{BirthYear}"/span>
把它放在一起,我們得到:
DateTime myBirthAge = DateTime. Parse($"{BirthMonth}/{BirthDate}/{BirthYear}",System.Globalization.CultureInfo.InvariantCulture)。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/331588.html
標籤:
