티스토리 뷰



사용방법...
if (checkdate(document.checkform.opendate_year.value , document.checkform.opendate_month.value ,
document.checkform.opendate_day.value ) ==false ) {
   alert ("유효한 날짜가 아닙니다.");
   document.checkform.opendate_day.focus();
   return false;
}


함수
function checkdate(v_year,v_month,v_day ){

 var err=0
 if ( v_year.length != 4) err=1
 if ( v_month.length != 1 &&  v_month.length !=  2 ) err=1
 if ( v_day.length != 1  &&  v_day.length !=  2) err=1


 r_year = eval(v_year) ;
 r_month = eval(v_month);
 r_day = eval(v_day)  ;

 if (r_month<1 || r_month>12) err = 1
 if (r_day<1 || r_day>31) err = 1
 if (r_year<0 ) err = 1


 if (r_month==4 || r_month==6 || r_month==9 || r_month==11){
  if (r_day==31) err=1
 }

 // 2,윤년체크
 if (r_month==2){
  var g=parseInt(r_year/4)

  if (isNaN(g)) {
   err=1
  }
  if (r_day>29) err=1
  if (r_day==29 && ((r_year/4)!=parseInt(r_year/4))) err=1
 }

 if (err==1){
  return false
 }else{
                return true;

 }
}

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
윤달이 4년에 한번씩이죠~~
100년마다 한번씩은 아니구~~
400년마다 한번씩은 윤달이구~~

function gn_ArrayOfDay(l_sLeapYear)
{
   this[0]=0;  // <- 아무런 의미가 없는 것임. 무시해도 좋음.
   this[1]=31;
   this[2]=28;
   if (l_sLeapYear) // 윤달이 아니면...
       this[2]=29;
   this[3]=31;
   this[4]=30;
   this[5]=31;
   this[6]=30;
   this[7]=31;
   this[8]=31;
   this[9]=30;
   this[10]=31;
   this[11]=30;
   this[12]=31;
}

function gv_date_check(l_sDate) // "19991231" 이런 형식`으로 반드시 넘겨줄것
{                             // "1999/12/31" 이런 형식은 절대 안됨  
   if (l_sDate == "") return false;

   if (l_sDate.length != 8) // 처음엔 자리수부터 Check 한다.
   {          
      return false;
   }

   /*************************************************
    * text Box 의 입력된 자료 Check
    *************************************************/        
   var l_iYear  = parseInt(l_sDate.substring(0,4), 10);     
   var l_iMonth = parseInt(l_sDate.substring(4,6), 10);
   var l_iDay   = parseInt(l_sDate.substring(6,8), 10);   
  
  
   /******************************************************************
    * 윤달 Check!
    ******************************************************************/
   var l_sLeapYear = (((l_iYear%4 == 0) && (l_iYear%100 != 0)) || (l_iYear%400 == 0));
   var monthDays  = new gn_ArrayOfDay(l_sLeapYear);

   if (l_iYear < 1900)
   {
      return false;
   }
   else if (l_iMonth > 12) // 달수가 12월 보다 크면...
   {           
       return false;
   }
   else if((parseInt(l_iDay) < 1) || (l_iDay > monthDays[l_iMonth])) // 그 달의 마지막 날 보다 크다면...
   { 
       return false;
   }
  
   return true;
}

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Total
Today
Yesterday