무소의 뿔처럼

(투표검수조회)과정평가형 정산기 실기 _지역구의원투표 프로그램 본문

과정평가_정산기_기록/지역구의원투표 프로그램

(투표검수조회)과정평가형 정산기 실기 _지역구의원투표 프로그램

값을변경 2022. 2. 19. 18:41

제 1투표장 정보만을 출력

 

생년월일 생년월일 항목의 데이터는 YYYY년MM월DD일생 형식으로 출력되도록 처리한다.
DB에서 데이터를 뽑으면 좋겠지만.. 너무 복잡함.. java로 처리해 버렸다.
이러면 점수 깎이는지는 모른다.. 정보 얻을 수 있는 곳이 없

sql data '99010110001'
출력상태 1999년01월01일

 

jno = rs.getString("jno");
	jno1 = jno.substring(0, 2);
	jno2 = jno.substring(2, 4);
	jno3 = jno.substring(4, 6);
				
	int jno1int = Integer.parseInt(jno1);
		if ( 40 <= jno1int || jno1int >= 99){
				jnoYear = "19"+jno1; 
		}else {
				jnoYear = "20"+jno1;
		}

 

나이 나이 계산은 만으로 계산한다.

캘린터 클래스에서 현재 년도 정보 가져옴.

sql data '99010110001'
출력상태 만 23세  (2022기준)
Calendar cal = Calendar.getInstance();
	int Y = Integer.parseInt(jno1);
	int calY = cal.get(Calendar.YEAR);
	int year = calY - (1900+Y);

 

성별 

sql data '99010110001'
출력상태
jno4 = jno.substring(6,7);
	gender = jno4.equals("1")? "남" : "여";

 

시간 투표시간 항목은 hh:mm 형식으로 출력

sql data 0930
출력상태 09:30
jtime = rs.getString("jtime");
	time1 = jtime.substring(0, 2);
	time2 = jtime.substring(2, 4);
    
    ...
    <td>
      <%=time1 %>:<%=time2 %>
    </td>

 

유권자확인 Y - 확인  N - 미확인

jconfirm = rs.getString("jconfirm");
	confirm = jconfirm.equals("Y")?"확인":"미확인";

 

 

전체 투표검수조회 

더보기
<%@page import="java.util.Calendar"%>
<%@page import="vote.dbcon"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%
    	Connection con = null;
    	Statement stmt = null;
    	ResultSet rs = null;
    	
    	String jno="";
    		String jno1="";
    		String jno2="";
    		String jno3="";
    		String jno4="";
    		String jnoYear="";
    		String gender="";
    	String jname="";
    	String mno="";
    	String jtime="";
    		String time1="";
    		String time2="";
    	String jconfirm="";
    		String confirm="";
    	
    	
    	try{
    		con = dbcon.getConnection();
    		stmt = con.createStatement();
    		String sql="select * from tbl_vote_202005 where jarea = '제1투표장'";
    		rs = stmt.executeQuery(sql);
    %>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<jsp:include page="header.jsp"></jsp:include>

<section class="Section">
	<h3 class="sectionH3"> 투표검수조회</h3>
	
	<table class="Table">
	
		<tr>
			<td>성명</td>
			<td>생년월일</td>
			<td>나이</td>
			<td>성별</td>
			<td>후보번호</td>
			<td>투표시간</td>
			<td>유권자확인</td>
		</tr>
		
		<tr>
		<%
		while(rs.next()){
			jno = rs.getString("jno");
				jno1 = jno.substring(0, 2);
				jno2 = jno.substring(2, 4);
				jno3 = jno.substring(4, 6);
				
				int jno1int = Integer.parseInt(jno1);
					if ( 40 <= jno1int || jno1int >= 99){
						jnoYear = "19"+jno1; 
					}else {
						jnoYear = "20"+jno1;
					}
				
				Calendar cal = Calendar.getInstance();
				int Y = Integer.parseInt(jno1);
				int calY = cal.get(Calendar.YEAR);
				int year = calY - (1900+Y);
								
				jno4 = jno.substring(6,7);
				gender = jno4.equals("1")? "남" : "여";
				
			jname = rs.getString("jname");
			mno = rs.getString("mno");
			jtime = rs.getString("jtime");
				time1 = jtime.substring(0, 2);
				time2 = jtime.substring(2, 4);
			jconfirm = rs.getString("jconfirm");
				confirm = jconfirm.equals("Y")?"확인":"미확인";
				
		%>
			<td><%=jname %></td>
			<td><%=jnoYear %>년<%=jno2 %>월<%=jno3 %>일생</td>
			<td>만 <%=year %>세</td>
			<td> <%=gender %></td>
			<td><%=mno %></td>
			<td><%=time1 %>:<%=time2 %></td>
			<td><%=confirm %></td>
			
		</tr>
				<%} %>	
	</table>
</section>

<%
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(con != null) con.close();

}catch(Exception e){
e.printStackTrace();
}
%>

<jsp:include page="footer.jsp"></jsp:include>

</body>
</html>

 

 

sql로만 data 가공 (예전에 연습했을때 구글링)

더보기
select jname,

       '19'||substr(jno,1,2)||
       '년'||substr(jno,3,2)||
       '월'||substr(jno,5,2)||
       '일생' jno,

       '만'|| 
      ( to_number(to_char(sysdate,'yyyy'))
       -
       to_number('19'||substr(jno,1,2)))
       ||'세' jage,

       case substr(jno,7,1)
          when '1' then '남'
          else '여'
       end jgender,

       mno,

       substr(lpad(jtime,4,'0'),1,2)||
       ':'||
       substr(lpad(jtime,4,'0'),3,2) jtime,

       case jconfirm
          when 'Y' then '확인'
          else '미확인'
       end jconfirm

from tbl_vote_202005
where jarea='제1투표장';

 

 

 

Comments