Winform 의 TextBox 입력 날짜 형식 검증 yyy-mm-dd


private void button1_Click(object sender, EventArgs e)
        {
            string s = textBox1.Text.ToString();
            bool b = ValidateDataTime(s);
            string rs = "";
            if (b)
            {
                rs = "true";
            }
            else
            {
                rs = "false";
            }
            MessageBox.Show(rs);
        }

        // - :YYYY-MM-DD
        public static bool ValidateDataTime(string InputStr)
        {
            if (InputStr.Length >0)
            {
                if(Regex.IsMatch(InputStr.Trim(),@"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"))
                {
                    return true;
                }
                else
                {
                    return false;
                }

            }
            return false;
        }

 
YYYY-MM-DD 라 는 격식 을 판단 하 는 것 은 기본적으로 윤년 과 2 월 등의 상황 을 모두 고려 한 것 이다^((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$  
다음은 시간 검증 을 추가 한 것 입 니 다.  
^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))   (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$

좋은 웹페이지 즐겨찾기