신분증 변환 클래스
java 클래스:
public class CardConverter {
private static final String BIRTH_YEAR = "19";
private static final int[] WI = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,
5, 8, 4, 2, 1 };
/**
* 18 15
* @param strCard18
* @return
*/
public static String convert18to15(String strCard18) {
if (strCard18 == null || strCard18.length() != 18) {
return strCard18;
}
String strCard15 = strCard18.substring(0, 6)
+ strCard18.substring(8, 17);
return strCard15;
}
/**
* 15 18
* @param strCard15
* @return
*/
public static String convert15to18(String strCard15) {
return convert15to18(strCard15, null);
}
/**
* 15 18
* @param strCard15
* @param strYear
* @return
*/
public static String convert15to18(String strCard15, String strYear) {
if (strCard15 == null || strCard15.length() != 15) {
return strCard15;
}
String year = BIRTH_YEAR;
if (strYear != null && strYear.length() == 2) {
year = strYear;
}
// 17
String strCard17 = strCard15.substring(0, 6) + year
+ strCard15.substring(6);
return strCard17 + getLastNumber(strCard17);
}
/**
*
* @param strCard17
* @return
*/
private static String getLastNumber(String strCard17) {
String str18 = null;
int iNum = 0;
for (int i = 0; i < 17; i++) {
iNum += Integer.parseInt(strCard17.substring(i, i + 1)) * WI[i];
}
iNum = iNum % 11;
switch (iNum) {
case 0:
str18 = "1";
break;
case 1:
str18 = "0";
break;
case 2:
str18 = "X";
break;
case 3:
str18 = "9";
break;
case 4:
str18 = "8";
break;
case 5:
str18 = "7";
break;
case 6:
str18 = "6";
break;
case 7:
str18 = "5";
break;
case 8:
str18 = "4";
break;
case 9:
str18 = "3";
break;
case 10:
str18 = "2";
break;
}
return str18;
}
/**
*
* @param args
*/
public static void main(String[] args) {
System.out.println(CardConverter.convert18to15("310113198407291234"));
System.out.println(CardConverter.convert15to18("310113840729123","20"));
System.out.println(" :");
long begin = System.currentTimeMillis();
int count = 100000;
for (int i = 0; i < count; i++) {
CardConverter.convert15to18("310113840729123");
}
long end = System.currentTimeMillis();
System.out.println(end - begin);
}
}
js 방법:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>js:15 18 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
/*
@card 15
@year 19 19
*/
function cid15To18(card,year) {
if(!card || card.length != 15){
return "";
};
var year = year?year:"19";
var fisrt17 = card.substring(0,6)+year+card.substring(6);
return fisrt17 + getLastNum(fisrt17);
}
/**
17 18
*/
function getLastNum(fisrt17) {
var lastNumber;
var id = fisrt17
var getNum=eval(id.charAt(0)*7+id.charAt(1)*9+id.charAt(2)*10+id.charAt(3)*5+id.charAt(4)*8+id.charAt(5)*4+id.charAt(6)*2+id.charAt(7)*1+id.charAt(8)*6+id.charAt(9)*3+id.charAt(10)*7+id.charAt(11)*9+id.charAt(12)*10+id.charAt(13)*5+id.charAt(14)*8+id.charAt(15)*4+id.charAt(16)*2);
getNum=getNum%11;
switch (getNum) {
case 0 :
lastNumber="1";
break;
case 1 :
lastNumber="0";
break;
case 2 :
lastNumber="X";
break;
case 3 :
lastNumber="9";
break;
case 4 :
lastNumber="8";
break;
case 5 :
lastNumber="7";
break;
case 6 :
lastNumber="6";
break;
case 7 :
lastNumber="5";
break;
case 8 :
lastNumber="4";
break;
case 9 :
lastNumber="3";
break;
case 10 :
lastNumber="2";
break;
}
return lastNumber;
}
function $(id) {
return document.getElementById(id);
}
function convert(value){
var rValue = cid15To18(value);
if(rValue == "") {
alert(" , 15 ");
} else {
$("txtCard18").value = rValue;
}
}
//-->
</SCRIPT>
15 <input id="txtCard15" type="text" /><input type="button" value=" " onclick="convert($('txtCard15').value)"/>
<br/>
18 <input id="txtCard18" type="text" onclick=""/>
</BODY>
</HTML>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다른 사람의 웹사이트 편집: contenteditable 및 designMode그래도 우리가 그렇게 할 수 있다고 생각하는 것은 멋진 일입니다. 제가 강조하고 싶었던 일종의 관련 API가 실제로 몇 개 있기 때문에 오늘 그것을 가져왔습니다. contenteditable는 "true" 값이 할당...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.