在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 吗?
=============
更好的方法是只编写完成目标所需的代码。
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日的所有日期是你的业务目标吗?