VB.NET
'''
<summary>
''' 日付入力が正しいか判定する方法
'''
</summary>
'''
<param name="intYear"></param>
'''
<param name="intMonth"></param>
'''
<param name="intDay"></param>
'''
<returns></returns>
Public Shared Function
IsDate(intYear As Integer, intMonth As Integer, intDay As Integer) As Boolean
' 年判定
If
(DateTime.MinValue.Year > intYear) OrElse (intYear >
DateTime.MaxValue.Year) Then
Return False
End If
' 月判定
If
(DateTime.MinValue.Month > intMonth) OrElse
(intMonth > DateTime.MaxValue.Month) Then
Return False
End If
' 年月から日数を取得
Dim
iLastDay As Integer = DateTime.DaysInMonth(intYear, intMonth)
' 日判定
If
(DateTime.MinValue.Day > intDay) OrElse (intDay >
iLastDay) Then
Return False
End If
' OK
Return True
End Function
C#
///
<summary>
/// 日付入力が正しいか判定する方法
///
</summary>
///
<param name="intYear"></param>
///
<param name="intMonth"></param>
///
<param name="intDay"></param>
///
<returns></returns>
public static bool
IsDate(int intYear, int intMonth, int intDay)
{
// 年判定
if ((DateTime.MinValue.Year
> intYear) || (intYear > DateTime.MaxValue.Year))
{
return false;
}
// 月判定
if ((DateTime.MinValue.Month
> intMonth) || (intMonth > DateTime.MaxValue.Month))
{
return false;
}
// 年月から日数を取得
int
iLastDay = DateTime.DaysInMonth(intYear, intMonth);
// 日判定
if ((DateTime.MinValue.Day >
intDay) || (intDay > iLastDay))
{
return false;
}
// OK
return true;
}