使用DateTime.TryParseExact
這樣:
public void addMeeting()
{
var dateFormats = new[] {"dd.MM.yyyy", "dd-MM-yyyy", "dd/MM/yyyy"};
Console.WriteLine("Add a schedule for specific dates: ");
string readAddMeeting = Console.ReadLine();
DateTime scheduleDate;
bool validDate = DateTime.TryParseExact(
readAddMeeting,
dateFormats,
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.None,
out scheduleDate);
if(validDate)
Console.WriteLine("That's a valid schedule-date: {0}", scheduleDate.ToShortDateString());
else
Console.WriteLine("Not a valid date: {0}", readAddMeeting);
}
該方法返回一個bool
表明它是否能夠被解析與否,你傳遞一個DateTime
變量作爲out
參數,如果日期是其中將被初始化有效。
請注意,我使用DateTimeFormatInfo.InvariantInfo
,因爲您不想使用本地DateTime
格式,但可以在任何文化中工作。否則/
dd/MM/yyyy
將被您當前的文化的日期分隔符替換。 Read
循環在你的格式排列,直到你成功地解析輸入,如果沒有成功,直到最後搞定。 – kirotab
https://msdn.microsoft.com/en-us/library/ch92fbc1(v=vs.110).aspx在如何使用tryparse本身有一個很好的例子 – Thomas