JAVA 배열, Calendar, 주민등록번호 예제
- OS & Program/JAVA
- 2010. 8. 2. 12:59
*** 검색어: nabiro, java, Calendar, 주민등록번호
[출처] (주)프리렉, 열혈강의 JAVA Programming, 김승현 저
import java.io.*;
import java.util.*;
public class P221 {
public static void main(String[] ar) throws IOException{
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
String name = "";
int[] jumin = new int[14];
boolean right = false;
System.out.print("이름 = ");
name = in.readLine();
do{
right = false;
System.out.print("주민번호(ex.111111-1111111) = ");
for(int i=0; i < jumin.length; i++){
jumin[i] = System.in.read() - 48;
}
System.in.read();
System.in.read();
if(jumin[2]*10 + jumin[3] > 12) {
System.out.println("태여난 달은 12월 보다 클 수 없습니다.");
continue;
}
else if(jumin[4] * 10 + jumin[5] > 31)
{
System.out.println("태여난 일은 31일 보다 클 수 없습니다.");
continue;
}
else if(jumin[7] != 9 && jumin[7] != 0 &&
jumin[7] != 1 && jumin[7] != 2 &&
jumin[7] != 3 && jumin[7] != 4){
System.out.print("성별을 나타내는 숫자는");
System.out.println("9, 0, 1, 2, 3, 4 중 하나여야 합니다.");
continue;
}
int hap = 0, cre = 2;
float temp = 0.0f, temp1 = 0.0f;
for(int i=0; i < jumin.length - 1; i++){
if(i == 6){
continue;
}
hap += jumin[i] * cre;
cre++;
if(cre == 10){
cre = 2;
}
}
temp = (int)(hap / 11.0f) * 11.0f + 11.0f - hap;
temp1 = temp - (int)(temp / 10.0f) * 10.0f;
if(temp1 != jumin[13]){
System.out.println("주민번호 검증 수가 올바르지 않습니다.");
continue;
}
right = true;
} while(!right);
System.out.println();
System.out.println("이름 = " + name);
System.out.print("주민번호 = ");
for(int i = 0; i < jumin.length; i++){
if(i == 6){
System.out.print("-");
continue;
}
System.out.print(jumin[i]);
}
System.out.println();
System.out.print("생년월일 = ");
int year = 0, month = 0, day = 0;
switch(jumin[7]){
case 9: case 0: year = 1800; break;
case 1: case 2: year = 1900; break;
case 3: case 4: year = 2000; break;
}
year += jumin[0] * 10 + jumin[1];
month = jumin[2] * 10 + jumin[3];
day = jumin[4] * 10 + jumin[5];
System.out.println(year + "년" + month + "월" + day + "일");
System.out.print("성별 = ");
System.out.println(jumin[7] % 2 == 0 ? "여성" : "남성");
System.out.print("태어난 시도 = ");
String area = "";
switch(jumin[8]) {
case 0: area = "서울"; break;
case 1: area = "경기, 인천"; break;
case 2: area = "부산"; break;
case 3: area = "강원도"; break;
case 4: area = "충청도"; break;
case 5: area = "전라도"; break;
case 6: area = "대구, 광주"; break;
case 7: area = "경북, 경남"; break;
case 8: area = "경남"; break;
case 9: area = "제주도"; break;
}
System.out.println(area);
System.out.print("나이 = ");
Calendar ca = Calendar.getInstance();
int age = ca.get(Calendar.YEAR)- year + 1;
System.out.print(age);
System.out.println("세");
}
}
'OS & Program > JAVA' 카테고리의 다른 글
| JAVA class 예제 (0) | 2010.08.03 |
|---|---|
| JAVA 배열, 성적표 예제 (0) | 2010.08.02 |
| JAVA 배열 (int, String, float) 예제 (0) | 2010.08.02 |
| JAVA 배열 초기화 예제 (0) | 2010.08.02 |
| eclipse 실행 시에 매개 변수 전달하는 방법 (0) | 2010.08.02 |