2

我有三个字符串/整数,分别是日、月和年。有什么方法可以检查它们是否采用有效的 DateTime 格式?我正在使用 ASP.NET。

当用户注册时,他输入月、日和年。

我曾经将三个变量转换为字符串并尝试解析以检查它是否合法,但唯一的问题是在不同的机器上运行相同的项目,因为一些不同的机器使用不同的日期格式。

4

2 回答 2

8

这个怎么样:

    private bool IsValidDate(int year, int month, int day)
    {
        if (year < DateTime.MinValue.Year || year > DateTime.MaxValue.Year)
            return false;

        if (month < 1 || month > 12)
            return false;

        return day > 0 && day <= DateTime.DaysInMonth(year, month);
    }
于 2013-01-23T19:55:00.537 回答
1

如果您已经将作为三个单独的整数,则可以直接使用DateTime 的构造函数之一,而不是将它们放入字符串中并将其重新解析为 DateTime。

DateTime mydate;
myDate = new DateTime(year, month, day);

ArgumentOutOfRangeException如果日期无效,这将抛出一个错误,因此您应该将其包装在 try/catch 块中,并catch(ArgumentOutOfRangeException e)在您的日期没有有效格式时使用块来管理逻辑。

于 2013-01-23T19:57:07.180 回答