日期格式验证

本文关键字:验证 格式 日期 | 更新日期: 2023-09-27 18:26:20

如何确保只接受在控制台中输入的此日期格式并将其存储在文本文件中,而其他任何日期格式都不应存储在文本中,并且应显示错误消息,提示用户以正确的格式输入日期。

Date Format = MM/DD/YYYY

使用以下代码13/10/2013会显示错误消息,但即使在输入正确的格式(如12/12/2013)时,它也会显示相同的错误消息,并不断重复,如果没有验证正确的格式。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;
    }
}

上面的代码可以修改并与我的代码融合以使其工作吗?

日期格式验证

将格式更改为"MM/dd/yyyy"

如果您需要使用MM/dd/yyyy验证日期格式,则需要在TryParseExact方法中将其作为格式字符串,目前您有MM-dd-yyyy。所以您需要给输入类似01-01-2013 的东西

以下代码将起作用:

            Console.WriteLine("Enter the Date Scheduled For the Meeting:");
            string Date = Console.ReadLine();
            DateTime Test;
            if(DateTime.TryParseExact(Date, "MM/dd/yyyy", null, DateTimeStyles.None, out Test) == true)
            {
                    Console.WriteLine("Date is in the correct Format");
            }
            else
            {
                     Console.Write("Date Not OK");
                     return;
            }

如果您的格式是MM/DD/YYYY,为什么要解析MM-DD-YYYY?

 while(!DateTime.TryParseExact(Date,"MM/dd/yyyy",CultureInfo.InvariantCulture,DateTimeStyles.None,out date))