2013-08-03 38 views
0

我希望我的程序驗證日期格式爲mm/dd/yyyy。我不想使用任何throw/catch塊。格式化日期時沒有得到預期的輸出

class FunWithScheduling 
{ 
    public void AddView() 
    { 
     ... 
     ... 

     Console.WriteLine("Enter the Date Scheduled For the Meeting:"); 
     string Date = Console.ReadLine(); 
     DateTime date = DateTime.Parse(Date); 
     string formatted = date.ToString("MM-dd-yyyy"); 
     if (Date != formatted) 
      Console.WriteLine("Invalid Choice"); 

     ... 
     ... 
    } 

    static void Main() 
    { 
     FunWithScheduling a = new FunWithScheduling(); 
     a.AddView(); 
    } 
} 

回答

1

嘗試:

DateTime dt; 
if (
    DateTime.TryParseExact(
     "08/03/2013", 
     "MM/dd/yyyy", 
     null, 
     System.Globalization.DateTimeStyles.None, 
     out dt 
    ) 
) 
{ 
    //Date in correct format 
} 
1

退房DateTime.TryParseExact

1

你需要改變這一行

DateTime date = DateTime.Parse(Date); 

DateTime date; 
if(!DateTime.TryParseExact(Date,"MM-dd-yyyy",new CultureInfo("en-US"), 
          DateTimeStyles.None, 
          out date)) 
{ 
    Console.WriteLine("Invalid Choice"); 
}