我的程序必须接受用户以此格式月,日,年(mm / dd / yyyy)输入的日期,而不是任何其他顺序,如果输入的详细信息采用此格式(mm / dd / yyyy) )它存储在多维数组中。
答案 0 :(得分:2)
将DateTime.ParseExact
与正确的格式字符串和CultureInfo.InvariantCulture
dates[0] = DateTime.ParseExact("07/28/2013", "MM/dd/yyyy", CultureInfo.InvariantCulture);
/
通常是您当前文化的日期分隔符的替换字符(例如-
或.
)。要强制/
作为分隔符,您需要指定CultureInfo.InvariantCulture
。
请参阅:The "/" Custom Format Specifier
您可以使用DateTime.TryParseExact
检查用户是否输入了有效格式:
DateTime dt;
if (DateTime.TryParseExact("07/28/2013", "MM/dd/yyyy", CultureInfo.InvariantCulture,DateTimeStyles.None, out dt))
{
// valid date
}
答案 1 :(得分:0)
假设用户在TextBox中输入日期
DateTime Test;
if (DateTime.TryParseExact(textBox1.Text, "mm/dd/yyyy", null, System.Globalization.DateTimeStyles.None, out Test) == true)
//do whatever
else
//do something else
答案 2 :(得分:0)
我不确定你的意思
它已存储在多维数组中。
这是一个完整的程序,用于提示用户输入您指定格式的日期。
void Main()
{
string datePrompt = "Please enter the date mm/dd/yyyy: ";
string invalidDateMessage = "Invalid date format, please use mm/dd/yyyy, for example you could type 01/07/1980.";
DateTime dateTime;
bool done = false;
while(!done)
{
string userInput = Prompt(datePrompt, Console.Out, Console.In);
done = ValidateAndParseDate(userInput, out dateTime, Console.Out, invalidDateMessage);
}
Console.WriteLine("I can now store {0} in a multi dimensional array!", dateTime.ToShortDateString());
}
string Prompt(string prompt, TextWriter writer, TextReader reader)
{
writer.Write(prompt);
string line = reader.ReadLine();
return line;
}
bool ValidateAndParseDate(string dateString, out DateTime dateTime, TextWriter writer, string errorMessage)
{
bool isValid = DateTime.TryParseExact(
dateString,
"MM/dd/yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dateTime);
if(!isValid)
{
writer.WriteLine(errorMessage);
}
return isValid;
}