我的程序必须接受用户以这种格式输入的日期,月,日,年(mm/dd/yyyy),而不是任何其他顺序,如果输入的详细信息采用这种格式(mm/dd/yyyy),它会得到存储在多维数组中。
问问题
135 次
3 回答
2
使用DateTime.ParseExact
正确的格式字符串和CultureInfo.InvariantCulture
dates[0] = DateTime.ParseExact("07/28/2013", "MM/dd/yyyy", CultureInfo.InvariantCulture);
/
通常是您当前区域性日期分隔符的替换字符(例如-
,或.
)。要强制/
作为分隔符,您需要指定CultureInfo.InvariantCulture
.
请参阅:“/”自定义格式说明符
您可以使用DateTime.TryParseExact
检查用户是否输入了有效格式:
DateTime dt;
if (DateTime.TryParseExact("07/28/2013", "MM/dd/yyyy", CultureInfo.InvariantCulture,DateTimeStyles.None, out dt))
{
// valid date
}
于 2013-07-28T00:27:45.470 回答
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
于 2013-07-28T00:29:19.873 回答
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;
}
于 2013-07-28T00:52:34.943 回答