Как убедиться, что только этот формат даты, который вводится в консоли, принимается и сохраняется в текстовом файле, а любой другой не должен храниться в текстовом файле и должен отображать сообщение об ошибке с запросом пользователя для ввода даты в правильном формате.Дата Формат Валидация
Date Format = MM/DD/YYYY
с помощью следующего кода 13/10/2013 отображает сообщение об ошибке, но даже при вводе правильного формата, как 12/12/2013 отображается то же сообщение об ошибке и продолжает повторяться, и если Безразлично» t проверить правильность формата. return приостанавливает приложение.
if(!DateTime.TryParseExact(Date,"MM-dd-yyyy",new CultureInfo("en-US"),DateTimeStyles.None,out date))
{
Console.WriteLine("Invalid date format!");
while(!DateTime.TryParseExact(Date,"MM-dd-yyyy",new CultureInfo("en-US"),DateTimeStyles.None,out date))
{
Console.WriteLine("Invalid Date Entered, please format MM-dd-yyyy");
Date = Console.ReadLine();
}
}
Строгий строитель и другие концепции не допускаются. Что делать?
Я принимаю ввод пользователя как строку, а позже проверки, если он находится в правильном формате, а затем преобразовать его обратно в строку, если она придерживается указанного формата, а затем она сохраняется в моем текстовом файле, только если пользователь ввел правильный формат даты.
public override bool IsValid(string value)
{
string format = "MM/dd/yyyy";
DateTime dt;
if (DateTime.TryParseExact((String)value, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
return IsValid(dt);
}
else
{
return false;
}
}
Может вышеприведенный код будет изменен и слита с моим кодом, чтобы он работал?
Вы задавали несколько раз вопрос, каждый раз, когда вы получили тот же ответ: Если вы хотите, чтобы разобрать дату, которая вводится как ' 08/05/2013', вы НЕ МОЖЕТЕ попытаться сопоставить его с строкой 'MM-dd-yyyy', потому что она имеет' -' вместо '/'. Поскольку вы ясно думаете, что ответ неадекватен, можете ли вы объяснить, что вы пытаетесь сделать? – jszigeti