0

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

  1. 如果选择了第 31 天,则本月有 31 天
  2. 如果选择了 2 月,我需要检查它是否是闰年,以防用户选择 29

目前,我正在使用一个用if'sand填充的长函数来检查它else's

在我插入日期之前,有什么方法C#可以检查日期是否有效?

4

4 回答 4

1
DateTime temp;
if (DateTime.TryParse(yourString, out temp))
{
    //valid, use temp to insert into DB.
}
else
{
    //not valid.
}
于 2013-06-15T07:42:44.367 回答
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
    {
    }
于 2013-06-15T08:01:18.050 回答
0

如果你有三个整数yearsmonthsdays,首先检查它years1和之间9999,然后检查它months1和之间12,最后检查它days1和之间DateTime.DaysInMonth(years, months)

补充:如果是用于数据库存储,根据具体的 SQL 列类型,有效年份的范围可能会更窄,例如1753通过9999. 无论如何,所谓的“预知”公历并不是历史正确的,它是一种“外推”。

于 2013-06-15T08:15:35.637 回答
0

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

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

}
于 2017-10-25T09:50:25.483 回答