在插入数据库之前验证日期(是否为闰年)

本文关键字:是否 闰年 日期 验证 插入 数据库 | 更新日期: 2023-09-27 18:18:25

当我需要将日期插入数据库时,我需要检查两件事:

  1. 如果这个月有31天,选择31天
  2. 如果选择二月,我需要检查它是否是闰年,如果用户选择29

目前我正在使用一个充满if'selse's的长函数来检查这一点。

C#中是否有任何方法可以在我插入之前检查日期是否有效?

在插入数据库之前验证日期(是否为闰年)

DateTime temp;
if (DateTime.TryParse(yourString, out temp))
{
    //valid, use temp to insert into DB.
}
else
{
    //not valid.
}

闰年验证

static void Main(string[] args)
{
 try
 {
  Console.Write("Please Enter the Year: ");
  int year = int.Parse(Console.ReadLine());
  if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
      {
        Console.WriteLine("The year {0}, is a Leap Year", year);
       }
      else
       {
        Console.WriteLine("The year {0}, is not a Leap Year", year);
      }
  }
    catch (Exception ex)
{
  Console.WriteLine(ex.Message);
}
  Console.ReadLine(); 
}

或者直接用

if (DateTime.IsLeapYear(year))
     {
         //your logic
     }
 else
    {
    }

如果你有三个整数years, monthsdays,首先检查years19999之间,然后检查months112之间,最后检查days1DateTime.DaysInMonth(years, months)之间。

添加:如果是用于数据库存储,根据特定的SQL列类型,有效年份的范围可能更窄,例如17539999。无论如何,所谓的"预言"公历是不正确的历史,它是一种"外推"。

根据该年是否为闰年,设置二月的值为28或29。

if (currentDate.Month == 2 && DateTime.IsLeapYear(currentDate.Year))
{
     //your logic to work on february month
}
else
{
}