[구디아카데미][IT국비지원][TIL] 주민번호 입력시 나이와 성별 출력

Seokhyun Jeong·2023년 4월 19일
0

과제

목록 보기
7/19
post-thumbnail

[구디아카데미][IT국비지원]

코드

snForm.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>주민번호 분석</h1>
	<form action="./snAction.jsp" method="post">
		<input type="number" name="sn1">
		-
		<input type="number" name="sn2">
		<button type="submit">분석</button>
	</form>
</body>
</html>

snAction.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.Calendar" %>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Insert title here</title>
</head>
<body>
	<%
		// 1. 요청처리
		String sn = request.getParameter("sn1") + request.getParameter("sn2");
		// 9012251234567
		// 6번째 문자(열)을 뽑아서 숫자로 변경
		String s7 = sn.substring(6, 7);
		int gender = Integer.parseInt(s7);
		
		// 성별
		String sGender = null;
		if(gender % 2 == 0){ // 짝수이면 여
			sGender ="여";
		} else {			 // 아니면 남
			sGender ="남";
		}
		
		// 태어난 년도
		String preYear = null;
		if(gender == 0 || gender == 9) { 									  // 주민번호 7번째 자리가 0이나 9이면 1800년도
			preYear = "18";
		} else if(gender == 1 || gender == 2 || gender == 5 || gender == 6) { // 1, 2, 5, 6이면 1900년도
			preYear = "19";
		} else {                                                              // 나머지는 2000년도
			preYear = "20";
		}
		
		
		String year = preYear + sn.substring(0, 2);
		int birthYear = Integer.parseInt(year);
		
		// 오늘 날짜 정보를 반환(today)하는 코드
		Calendar today = Calendar.getInstance();
		// today에서 오늘 년도만 추출
		int todayYear = today.get(Calendar.YEAR);
		
		int age = todayYear - birthYear;
		
	%>
	<table>
		<tr>
			<td>태어난년도 : </td>
			<td><%=birthYear %></td>
		</tr>
		
		<tr>
			<td>성별 : </td>
			<td><%=sGender %></td>
		</tr>
		
		<tr>
			<td>나이 : </td>
			<td><%=age %></td>
		</tr>
	</table>
</body>
</html>

결과화면


0개의 댓글