최신글
hyeonga_code
Java_주민 번호 인증 확인 코드 작성 본문
반응형
' jumin.java' 클래스 생성
=====
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
package com.java.exam04;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
public class jumin {
public static void main(String[] args) throws IOException {
// 입력받을 준비
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Name : ");
String name = br.readLine(); // throws IOException
// 주민번호를 계산을 위해 낱개로 받아옵니다.
System.out.print("Number : ");
int[] number = new int[13];
/*
- br.readLine()으로 주민번호를 입력받은 경우 charAt()으로 받아올 수 있습니다.
if(imsiJumin.length() != 13){
System.err.println("Error");
System.exit(0); // 시스템 강제 종료
}
String imsiJumin = br.readLine();
for(int i=0; i<imsiJumin.length(); i++) {
number[i] = imsiJumin.charAt(i)-48;
}
*/
for(int i=0; i<number.length; i++) {
number[i] = System.in.read() - 48;
} // end for
// Enter 제거
System.in.read();
System.in.read();
/* 확인 코드
System.out.println(name);
for(int i=0; i<number.length; i++) {
System.out.println("number[" + i + "] : " + number[i]);
}
*/
float hap = 0;
float temp = 0;
float total = 0;
float cre = 2.f;
for(int i=0; i<number.length-1; i++) {
if(cre == 10.f) cre = 2.f;
hap += number[i] * cre;
cre++;
}
temp = 11.f * (int)(hap/11.f) + 11.f - hap;
total = temp - 10.f*(int)(temp/10.f);
if(number[number.length-1] != total) {
System.out.println("Wrong number");
return;
}
// if 문이 실행되지 않은 경우 정상적인 주민번호입니다.
System.out.println();
System.out.println("Name : " + name);
// 연도 확인
int year = 1900;
switch(number[6]) {
case 3:
case 4: year = 2000; break;
case 9:
case 0: year = 1800; break;
default : year = 1900; break;
}
year = year + number[0]*10 + number[1];
int mon = number[2]*10 + number[3];
int day = number[4]*10 + number[5];
System.out.println("Year : " + year);
System.out.println("Month : " + mon);
System.out.println("Day : " + day);
System.out.println("Age : " + (Calendar.getInstance().get(Calendar.YEAR) - year));
System.out.println("Gender : " + (number[6]%2 == 0? "female":"male"));
switch(number[7]) {
case 0: System.out.println("Location : 서울"); break;
case 1: System.out.println("Location : 경기"); break;
case 2: System.out.println("Location : 강원"); break;
case 3: System.out.println("Location : 충북"); break;
case 4: System.out.println("Location : 충남"); break;
case 5: System.out.println("Location : 전북"); break;
case 6: System.out.println("Location : 전남"); break;
case 7: System.out.println("Location : 경북"); break;
case 8: System.out.println("Location : 경남"); break;
case 9: System.out.println("Location : 제주"); break;
/*
Name : correct
Number : 1234567890123
Name : hong
Year : 1912
Month : 34
Day : 56
Age : 111Gender : male
Location : 경남
Name : wrong
Number : 4567891234567
Wrong number
*/
}
}
}
|
반응형
'Java' 카테고리의 다른 글
Java_가위바위보 게임 코드 작성하기 (0) | 2023.10.29 |
---|---|
Java_마방진 코드 작성하기 (0) | 2023.10.28 |
Java_70_네트워크 (0) | 2023.10.28 |
Java_69_Assertion_단언 (0) | 2023.10.27 |
Java_68_Collection_List (0) | 2023.10.27 |