`

java身份证号验证程序小例子

阅读更多

import java.io.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import java.util.Calendar;

/**IdCard.java
  @src  http://eric-619.iteye.com/blog/694014
*@author eric
*@time  6/3/2010*/

public class IdCard extends JFrame{
   TextField tf1 = new TextField();
   TextField tf2 = new TextField();
   TextField tf3 = new TextField();
   TextField tf4 = new TextField();
   TextField tf5 = new TextField();
   TextField tf6 = new TextField();
   JLabel jl1 = new JLabel();
   JLabel jl2 = new JLabel();
   JLabel jl3 = new JLabel();
   JLabel jl4 = new JLabel();
   JLabel jl5 = new JLabel();
   JButton jb1 = new JButton("查询");
   JButton jb2 = new JButton("重写");
   JPanel jp1 = new JPanel();
   JPanel jp2 = new JPanel();
  
   public static void main(String[] args) throws IOException{
       new IdCard().frameLaunch();
     }

   public void frameLaunch(){
        setBounds(250,250,400,200);
        setTitle("eric---java身份验证程序");
        this.addWindowListener(new WindowAdapter(){
           public void windowClosing(WindowEvent e){
               System.exit(0);
           }
        });
    jb1.addActionListener(new Tjbutton());
    jb2.addActionListener(new JbListener());
    tf6.addActionListener(new Tjbutton());
    tf6.addMouseListener(new MouseDemo());
    jp1.setLayout(new GridLayout(5,2));
    jl1.setText("                          "+"身份证号:");
    jl2.setText("                          "+"出生日期:");
    jl3.setText("                                  "+"年龄:");
    jl4.setText("                                  "+"性别:");
    jl5.setText("                 "+"本次登录时间:");
    tf6.setColumns(30);
    jp1.setBackground(Color.green);
    jp2.setBackground(Color.blue);
    this.setResizable(false);
    tf1.setEditable(false);
    tf2.setEditable(false);
    tf3.setEditable(false);
    tf4.setEditable(false);
    tf5.setEditable(false);
    tf6.setText("请输入身份证号");
    add(jp1);
    add(jp2,BorderLayout.SOUTH);
    jp1.add(jl1);
    jp1.add(tf1);
    jp1.add(jl2);
    jp1.add(tf2);
    jp1.add(jl3);
    jp1.add(tf3);
    jp1.add(jl4);
    jp1.add(tf4);
    jp1.add(jl5);
    jp1.add(tf5);
    jp2.add(tf6);
    jp2.add(jb1);
    jp2.add(jb2);
    setVisible(true);
   }
  
   private class Tjbutton implements ActionListener{
        int length;
    int y;
    int age;
    int m;
    int d;
    String strYear = null;
    String strMonth = null;
    String strDay = null;
    String strNo = null;
    String strXingBie = null;
    String sex = "男";
   
    public void actionPerformed(ActionEvent e){
        try{
           mycalendar();
        }catch(Exception e1){
           e1.printStackTrace();
         }
        }  
   
        public void mycalendar()throws IOException{
     //使用正则表达式验证欲输入的内容
     String stdin = tf6.getText().toString();
     tf6.setText("");
     length = stdin.length();
     if(length >= 15 && length < 19){
         if(length == 15){
            strYear = stdin.substring(6,;
            strMonth = stdin.substring(8, 10);
            strDay = stdin.substring(10, 12);
            strNo = stdin.substring(12, 15);
         }else if(length == 18){
        strYear = stdin.substring(6, 10);  //372925198910180775
        strMonth = stdin.substring(10, 12);
        strDay = stdin.substring(12, 14);
        strNo = stdin.substring(14, 18);
        strXingBie = stdin.substring(16, 17);
        int xingbie = Integer.parseInt(strXingBie); 
        if(0 == xingbie % 2){
        sex = "女";
        }else{
        sex = "男";
        }
        System.out.println(strXingBie);
         }
         Calendar c = Calendar.getInstance();    //c就是总日历
             java.util.Date mydate = new java.util.Date();
             int myhours = mydate.getHours();
             int myminutes = mydate.getMinutes();
             int myseconds = mydate.getSeconds();
             String shours = Integer.toString(myhours);
             String sminutes = Integer.toString(myminutes);
             String sseconds = Integer.toString(myseconds);
         y = c.get(Calendar.YEAR);
         age = y - Integer.parseInt(strYear);
         m = c.get(Calendar.MONTH) + 1;
         d = c.get(Calendar.DATE);
         String sage = Integer.toString(age);
         String sy = Integer.toString(y);
         String sm = Integer.toString(m);
         String sd = Integer.toString(d);
         String sss = sy+'-'+sm+'-'+sd+'-'+shours+'-'+sminutes+'-'+sseconds;
         tf1.setText(stdin);
         tf2.setText(strYear+"-"+strMonth+"-"+strDay);
         tf3.setText(sage);
         tf4.setText(sex);
         tf5.setText(sss);
     }else{
         tf6.setText("您输入的身份证号码为空或有误,请重新填写!");
     }
}
      }
  
      private class JbListener implements ActionListener{
         public void actionPerformed(ActionEvent e){
            tf1.setText("");
            tf2.setText("");
            tf3.setText("");
            tf4.setText("");
            tf5.setText("");
         }
       }
  
       private class MouseDemo implements MouseListener{
   public void mouseClicked(MouseEvent e) { //鼠标按键在组件上单击(按下并释放)时调用
  
   }

   public void mouseEntered(MouseEvent e) { //鼠标进入到组件上时调用
  
   }

   public void mouseExited(MouseEvent e) { //鼠标离开组件时调用
  
   }

   public void mousePressed(MouseEvent e) { //鼠标按键在组件上按下时调用
    tf6.setText("");
   }

   public void mouseReleased(MouseEvent e) { //鼠标按钮在组件上释放时调用
  
   }
       }
    }
分享到:
评论

相关推荐

    java jdk实列宝典 光盘源代码

    15 applet java可以编写两类程序,applications和applet,applications可以在控制台直接运行,与其他高级编程语言没有太大区别,而java的特色在于它具有编制小应用程序的功能,applet可以在internet上传输并在兼容...

    Java JDK实例宝典

    第1章 Java基础 1.1 转换基本数据类型 1.2 Java的运算符 1.3 控制程序的流程 1.4 计算阶乘 1.5 实现命令行程序 第2章 Java面向对象程序设计 2. 1 复数类 2. 2 equals.chashCode...

    腾讯人脸识别demo

    **文字识别(OCR)**:身份证,名片,通用,驾驶证行驶证,营业执照,银行卡,车牌号 **人脸识别**:人脸检测,五官定位,个体信息管理,人脸验证,人脸对比及人脸检索 **人脸核身**:照片核身(通过照片和身份证...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    在这是junit测试单元类我就不提交了,在main()方法中有几个小测试,有兴趣自己玩吧. 这个工具类目前主要有25种正规表达式(有些不常用,但那时才仔细深入的研究了一下正规,写上瘾了,就当时能想到的都写了): 1....

    常用JS脚本页面判断

    6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如OA中时间) 1.5 显示动态显示时钟效果 (图像,像手表) 2、表单类 2.1 自动生成...

    javascript代码常用大全

    6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如OA中时间) 1.5 显示动态显示时钟效果 (图像,像手表) 2、表单类 ...

    javascript常用代码大全.html

    6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如OA中时间) 1.5 显示动态显示时钟效果 (图像,像手表) 2、表单类 2.1 自动生成表单 ...

    javascript 常用代码大全

    6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如oa中时间) 1.5 显示动态显示时钟效果 (图像,像手表) 2、表单类 ...

    javascript常用代码

    6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如oa中时间) 1.5 显示动态显示时钟效果 (图像,像手表) 2、表单类 ...

    在b/s开发中经常用到的javaScript技术整理

    B) {alert(\"输入的身份证号 \"+ a[0] +\" 里出生日期不对!\"); return false;} } return true; } 3.7 复选框的全选,多选,全不选,反选 (\'mm\')\"&gt;全选 (\'All\')\"&gt; (\'All\')\"&gt;...

    asp.net知识库

    #实现的18位身份证格式验证算法 身份证15To18 的算法(C#) 一组 正则表达式 静态构造函数 忽略大小写Replace效率瓶颈IndexOf 随机排列算法 理解C#中的委托[翻译] 利用委托机制处理.NET中的异常 与正则表达式相关的几...

Global site tag (gtag.js) - Google Analytics