我必須編寫程序,它會向用戶詢問一些數據,然後用這些數據打印一些文本。 下面只是一段代碼(其中有效),還有其他變量。用戶友好日期輸入
class Student
{
static public DateTime birthDay;
public void GetStudentInformation()
{
Console.WriteLine("Enter student's birth date (as mm/dd/yyyy): ");
birthDay = DateTime.Parse(Console.ReadLine());
}
public void PrintStudentData(ref DateTime birthDay)
{
Console.WriteLine("Student was born in {0}", birthDay.ToString("d"));
}
}
class Program
{
static void Main(string[] args)
{
Student newStudent = new Student();
newStudent.GetStudentInformation();
newStudent.PrintStudentData(ref Student.birthDay);
Console.ReadKey()
}
}
當我問的是生日時,我只需要日期,而不是時間。 有很多問題:
- 如何更改用戶該輸入日期是在其他格式比毫米/ DD/YYYY?
- 我如何操作輸出格式日期?所以它不會是yyyy-dd-mm而是dd/mm/yyyy或dd.mm.yyyy?
我想補充我真的在C#初學者,嘗試了一些代碼CultureInfo
,ParseExact
,TryParse
和modyfing輸出字符串{0:'dd/mm/yyyy'}
。
一兩個建議:1)不要在您的clasess接口和數據表示(混合代碼,因爲他們是你贏了不能在沒有終端/控制檯的環境中使用它們,ej:web)2)完全使用CultureInfo,除非它不適合你的需求。現在,我不確定這個問題,你想配置日期格式嗎?無論如何,「freandly」意味着什麼?編輯:我假設你已經測試過你提到的方法。 [你可以編輯你的問題來補充說明] – Theraot
@Theraot - 我沒有得到你的第一點。這段代碼有什麼問題?我應該爲某些數據創建另一個類嗎? 是的,我測試過這個程序很多次。 我的第二個問題是關於輸出字符串。程序打印'學生出生在yyyy-dd-mm',我會將其轉換爲例如'學生出生在dd/mm/yyyy'。 – Szkaplerny
這沒有錯。我的措辭可能過於權威。我會這麼說:有很多方法可以完成一項任務,其中一些更有效率,更可重用,而且它們不會對齊。您可能會越來越重視可重用性而非效率。所以,我建議將UI與數據表示分開。目前的代碼是否因爲它缺乏而不合適?不,它應該可以正常工作。此外,此代碼可能永遠不會遷移,因此其可重用性可能無關緊要。儘管如此,在需要時習慣自己也很好。什麼時候?當你想要相同的核心多個用戶界面。同時你可以忘記我說的話。 – Theraot