在c# 4中寻找更好的验证日期的方法

本文关键字:验证 日期 方法 更好 寻找 | 更新日期: 2023-09-27 17:50:38

想知道是否有更好的方法来验证日期,

  public static bool ValidDate(this  DateTime value)
  {
     if (value == DateTime.MinValue) return false;
     if (value == DateTime.MaxValue) return false;
     var validSqlDate = ((value >= (DateTime)SqlDateTime.MinValue) && (value <= (DateTime)SqlDateTime.MaxValue));
     if (!validSqlDate) return false;
     if (value.Year <= 1900) return false;
     return true;
  }

有什么建议

已添加的规则

  • DateTime不能为空
  • 如果有值,应该安全地保存到sql server
  • 我有一个场景,将日期设置为1900年。这是MinValue
  • 吗?

=============

在c# 4中寻找更好的验证日期的方法

更好的方法是只编写完成目标所需的代码。

DateTime。MinValue为"1/1/0001"。SqlDateTime。MinValue为"1/1/1753"。后来,你拒绝了所有低于1900年的年份。因此,对MinValue字段的检查是多余的,请删除它们。

DateTime。MaxValue和SqlDateTime。MaxValue是一样的。如果不需要两个检查,请删除SqlDateTime比较。

所以最终,你的功能是return value.Year > 1900 && value < DateTime.MaxValue;接受从1901年1月1日到9999年12月31日的所有日期是你的业务目标吗?