-1

我的程序必须接受用户以这种格式输入的日期,月,日,年(mm/dd/yyyy),而不是任何其他顺序,如果输入的详细信息采用这种格式(mm/dd/yyyy),它会得到存储在多维数组中。

4

3 回答 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 回答