주민등록번호 입력받아 생년월일, 성별, 유효성 출력

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/mystyle.css" type="text/css">
<script type="text/javascript">
function proc1(){
	today = new Date(); // 2021.11.17 시간
	
	// 990504 "2"408712 -> 1,2 - 1900/ 3,4-2000 ,1,3남자
    num = prompt("주민번호를 입력하세요.", "-없이 입력");
   /* year = num.substring(0, 2); */
   month = num.substring(2, 4);
   day = num.substring(4, 6);
   /* gender = num.substr(6, 1); */
   
    if(num.substr(6, 1) == 1 || num.substr(6, 1) == 2){
      year = "19"+num.substring(0, 2);
   }
    else{
      year = "20"+num.substring(0, 2);
    }
    
    if(num.substr(6, 1)==1 || num.substr(6, 1)==3){
       gender = "남자"
    }else{
       gender = "여자"
    }
    
   
    today.getFullYear() //2021
    age =  (today.getFullYear()-year)+1;
   
    str = "생일: " + year+"년"+ month+"월"+ day+ "일"+"<br>";
    str += "성별: "+gender+"<br>";
    str += "나이:"+age;
   
    
   document.getElementById('result1').innerHTML = str;
   
   
}

function proc2(){
   /* str = "234567892345"; */
   
   // 입력 (가정: 1103264432618)
   code = prompt("주민번호 입력", '-없이 입력');
   // code.length = 13 index : 0부터 12까지 
   sum = 0;
   // 입력된것을 한자리씩 추출 : 0부터 11까지 추출
   
   for(i=0; i<code.length-1; i++){
   /*    sum += code.substr(i,1) * str.substr(i,1); */
      sum += code.substr(i,1) * (i % 8 + 2);
   }
   
   res = 11 - sum % 11 // 0~11
   res = res % 10;
/*    if(res == 10) 
      res =0;
   if(res == 11)
      res =1; */
   
   
   if(res == code.substr(code.length-1,1)){
      alert("옳바른 주민번호다.");
   }else{
      alert("틀린 주민번호다.");
   }
   
}
</script>
</head>
<body>

   <div class="box">
   주민등록번호를 입력 받아 ( -없이 입력 ) 생년월일과 성별을 출력하는 프로그램을 작성하시오.(입력은 prompt로 입력받는다.)<br>
   예) 주민등록번호를 110326-4(1,2 - 1900/ 3,4-2000 ,1,3남자)432618로 입력 받은 경우<br>
   생일 : 2011년 3월 26일<br>
   성별 : 여자  나이: <br>
   
      <br>
      <button type="button" onclick="proc1()">확인</button>
      <div id="result1"></div>
   </div>
   
   <div class="box">
   주민등록번호를 입력 받아 주민등록번호의 유효성을 검사하는 프로그램을 작성하시오.(ABCDEF-GHIJKLM)<br>
   1. A*2 + B*3 + ... + H*9 + I*2 + ... + L*5 의 총합을 구한다.<br>
   110326-4432618<br>
   2. 1번의 합을 11로 나눈 나머지를 구한다.<br>
   3. 11에서 2번의 결과를 뺀다.<br>
   4. 3번의 결과가 0~9이면 값 그대로, 10이면 0, 11이면 1로 변환<br>
   5. 4번의 결과와 M자리의 값이 같으면 맞는 번호이다.<br>
   
   <br>
   <button type="button" onclick="proc2()">확인</button>
   <div id="result2"></div>
   </div>

</body>
</html>

좋은 웹페이지 즐겨찾기