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

时间:2013-06-15 07:40:24

标签: c# database validation date leap-year

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

  1. 如果本月有31天,如果选择第31天
  2. 如果选择二月,我需要检查一下闰年,以防用户选择29
  3. 目前,我正在使用填充if'selse's的长函数来检查此内容。

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

闰年验证

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
    {
    }

答案 2 :(得分:0)

如果您有三个整数yearsmonthsdays,请先检查years是否在19999之间,然后检查months介于112之间,最后检查days是否在1DateTime.DaysInMonth(years, months)之间。

添加:如果是用于数据库存储,则根据特定的SQL列类型,有效年份的范围可能会更窄,例如: 17539999。无论如何,所谓的“预感”格里高利历不是历史正确的,它是一种“推断”。

答案 3 :(得分:0)

将2月份的值设置为28或29,具体取决于该年份是否为闰年。

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

}