📄 2.txt
字号:
身份证号码转换
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.String;
public class Test extends JApplet
{
public void init()
{
Container cp=getContentPane();
cp.add(new MyPanel());
}
}
class MyPanel extends JPanel
{
public MyPanel()
{
setLayout(new BorderLayout());
pan3=new JPanel();
pan2=new JPanel();
pan4=new JPanel();
pan1=new JPanel();
lbltitle=new JLabel("身份证号码15位到18位转换",SwingConstants.CENTER);
lblold=new JLabel("15位身份证号:");
lblnow=new JLabel("18位身份证号:");
lblb=new JLabel("出生日期:");
lbls=new JLabel("性别:");
lblbirth=new JLabel();
lblsex=new JLabel();
lblcom=new JLabel("请输入..",SwingConstants.CENTER);
txtold=new JTextField(20);
lblsin=new JLabel();
btnok=new JButton("转换");
btninput=new JButton("重新输入");
pan1.setLayout(new GridLayout(4,2));
pan2.setLayout(new GridLayout(2,1));
pan3.add(lbltitle);
pan1.add(lblold);pan1.add(txtold);pan1.add(lblnow);pan1.add(lblsin);
pan1.add(lblb);pan1.add(lblbirth);pan1.add(lbls);pan1.add(lblsex);
pan1.setBackground(Color.lightGray);
pan4.add(btnok);pan4.add(btninput);
pan2.add(lblcom);
pan2.add(pan4);
pan2.setBackground(Color.lightGray);
pan1.setBackground(Color.lightGray);
add(pan3,BorderLayout.NORTH);
add(pan1,BorderLayout.CENTER);
add(pan2,BorderLayout.SOUTH);
btnok.addActionListener(new MyActionListener());
btninput.addActionListener(new MyActionListener());
}
private class MyActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()==btnok.getText())
{
if( check()==true)
{
convert();
lblcom.setText("转换成功");
}
}
else
again();
}
public boolean check()//验证函数
{
String str=txtold.getText();
int i;
if(str.length()!=15)//判断位数是否为15位
{
lblcom.setText("请输入15位有效的身份证号!");
return false;
}
for(int j=0;j<str.length();j++)
{
i=str.charAt(j);
if(i<48 || i>57)
{
lblcom.setText("输入的号码含有非法字符!");
return false;
}
}
return true;
}
public void convert()//转换函数
{
String birthstr,sexstr,strseven,str,strnew;
birthstr=new String();sexstr=new String();strseven=new String();
int[] code=new int ;
int[] num={2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7};
int sum=0,r=0;
str=txtold.getText();
strseven=str;
sexstr=str;
birthstr="19"+str.substring(6,12);
System.out.println(birthstr);
str=strseven.substring(0,6)+birthstr+sexstr.substring(12,15);
String year,month,day,tempstr;
year=birthstr;month=birthstr;day=birthstr;
year=year.substring(0,4);month=month.substring(4,6);day=day.substring(6,8);
int x,y,z;
x=Integer.parseInt(year);y=Integer.parseInt(month);z=Integer.parseInt(day);
lblbirth.setText(x+"年"+y+"月"+z+"日");
if(x<1900 || x>2000 || y<1 || y>12 || z<1 || z>31)//判断是否为有效的生日
{
lblcom.setText("你输入的身份证号的出生日期位错误!");
return;
}
Integer n;
for(int i=0;i<str.length();i++)
{
n=new Integer(str.charAt(i)+"");
code[i]=n.intValue();
sum=sum+code[i]*num[16-i];
}
if(code %2==0)
lblsex.setText(code +"女");
else
lblsex.setText(code +"男");
r=sum%11;
System.out.println(r+"");
c
har t;
switch(r)
{
case 0:
t='1';
break;
case 1:
t='0';
break;
case 2:
t='X';
break;
default:
t=(char)(48+12-r);
break;
}
System.out.println(t+"");
strnew=str+t;
lblsin.setText(strnew);
}
public void again()//重新输入函数
{
txtold.setText("");
lblsin.setText("");
lblbirth.setText("");
lblsex.setText("");
lblcom.setText("");
}
}
private JLabel lbltitle,lblold,lblnow,lblb,lbls,lblbirth,lblsex,lblcom,lbl,lblsin;
private JTextField txtold,txtnow;
private JButton btnok,btninput;
private JPanel pan1,pan2,pan3,pan4;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -