2013-06-15 1 views
0

Когда мне нужно вставить дату в базу данных, мне нужно, чтобы проверить 2 вещи:Пользователей Даты (Високосный год или нет) перед вставкой в ​​базу данных

  1. Если в этом месяце 31 дня в случае день 31 был выбран
  2. Если выбран февраль, мне нужно проверить, если это високосный год, в случае, если пользователь выбрал 29

в настоящее время я проверить это с помощью длинной функции наполненной if's и else's.

Есть ли какой-либо метод в C#, который может проверить дату, если он действителен или нет, прежде чем вставлять его?

ответ

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

Я тестировал это, похоже, работает. –

0

год проверки Leap

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

Для этого существует встроенная функция .net. http://msdn.microsoft.com/en-us/library/system.datetime.isleapyear.aspx –

+0

(Год + 2012)% 4 :) – Sayse

+0

Да, я также добавил существующий образец кода метода –

0

Если у вас есть три целых числа years, months и days, первая проверка, что years между 1 и 9999, затем проверьте, что months находится между 1 и 12, и, наконец, проверьте, что days находится между 1 и DateTime.DaysInMonth(years, months).

Дополнение: Если это для хранения базы данных, в зависимости от конкретного типа столбца SQL, диапазон допустимых лет может быть уже, например. 1753 - 9999. Во всяком случае, так называемый «пролептический» григорианский календарь не является исторически правильным, это своего рода «экстраполяция».

0

Установка значения для февральского месяца с 28 или 29 в зависимости от того, является ли этот год високосным или нет.

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

}