■■■

2016年4月8日金曜日

年月日の数値の日付が正しいかどうか判定する方法

年月日の数値の日付が正しいかどうか判定する方法
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;

        }

■■■