知识大全 中华人民共和国公民身份证号码校验程序

Posted 公民

篇首语:大鹏一日同风起,扶摇直上九万里。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 中华人民共和国公民身份证号码校验程序相关的知识,希望对你有一定的参考价值。

  /**

  * roonten practice tools identitycard\\IdentityCard java

  *

  * Copyright (c) patulous function toolkit for java individual

  * All rights reserved

  *

  * This toolkit all my items one is the last edition All the tools in the toolkit are defining

  * some handy discreteness for me So I can doing items easily I hope you unfeignedly

  * for use it

  */

  package roonten practice tools identitycard;

  import java util Calendar;

  /**

  * <div>

  * The <code>IdentityCard</code> class is implements IIdentityCard

  * interface In this interface there re some about checking an identity

  * card need to using methods For example the year and the month and the day

  * part this identity card must be right

  * </div>

  *

  * @author Roon Ten

  * @version

  */

  public class IdentityCard

  private char[] chrs;

  private final String CHECK_STRING = ([ ] )[ Xx] ;

  /**

  * Create an object of this class by an scheduled identity card

  * @param obj

  */

  public IdentityCard(Object obj)

  chrs = getChrs(obj);

  

  /**

  * Get a team for character by this identity card

  * @param obj

  * @return

  */

  private char[] getChrs(Object obj)

  return String valueOf(obj) toCharArray();

  

  /**

  * If this identity card is legal one return true

  */

  public boolean isLegalityFormat()

  return String valueOf(this chrs) matches(CHECK_STRING );

  

  /**

  * If the year this identity card is legal one return true

  */

  public boolean isLegalityYear()

  boolean isPass = false;

  if (chrs != null && chrs length >= )

  int year = Integer parseInt(chrs[ ] + + chrs[ ] + + chrs[ ]

  + + chrs[ ]);

  int current = Calendar getInstance() get(Calendar YEAR);

  isPass = year >= current && year <= current;

  

  return isPass;

  

  /**

  * If the month this identity card is legal one return true

  */

  public boolean isLegalityMonth()

  boolean isPass = false;

  if (chrs != null && chrs length >= )

  int month = Integer parseInt(chrs[ ] + + chrs[ ]);

  isPass = month > && month <= ;

  

  return isPass;

  

  /**

  * If the day this identity card is legal one return true

  */

  public boolean isLegalityDay()

  boolean isPass = false;

  if (chrs != null && chrs length >= )

  int yy = Integer parseInt(chrs[ ] + + chrs[ ] + + chrs[ ]

  + + chrs[ ]);

  int month = Integer parseInt(chrs[ ] + + chrs[ ]);

  int day = Integer parseInt(chrs[ ] + + chrs[ ]);

  Year year = new Year(yy);

  isPass = year getMaxDay(month) >= day;

  

  return isPass;

  

  /**

  * If the last character this identity card is legal one return true

  */

  public boolean isLegalityEnd()

  boolean isPass = false;

  if (chrs != null && chrs length >= )

  int num = (Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) *

  + Integer parseInt(chrs[ ] + ) * + Integer

   parseInt(chrs[ ] + ) * ) % ;

  switch (num)

  case :

  isPass = == chrs[ ];

  break;

  case :

  isPass = == chrs[ ];

  break;

  case :

  isPass = X == chrs[ ] || x == chrs[ ];

  break;

  case :

  isPass = == chrs[ ];

  break;

  case :

  isPass = == chrs[ ];

  break;

  case :

  isPass = == chrs[ ];

  break;

  case :

  isPass = == chrs[ ];

  break;

  case :

  isPass = == chrs[ ];

  break;

  case :

  isPass = == chrs[ ];

  break;

  case :

  isPass = == chrs[ ];

  break;

  case :

  isPass = == chrs[ ];

  break;

  

  

  return isPass;

  

  /**

  * Get the length this identity card

  */

  public int getLength()

  return this chrs length;

  

  /**

  * If it is a legal one

  */

  public boolean isEffective()

  boolean isValid = false;

  isValid = isLegalityFormat();

  if (isValid)

  isValid = isLegalityYear();

  if (isValid)

  isValid = isLegalityMonth();

  if (isValid)

  isValid = isLegalityDay();

  if (isValid)

  isValid = isLegalityEnd();

  

  

  

  

  return isValid;

  

  

  /**

  * The <code>Year</code> class use to get a month day of a year

  * @author TenRoon

  * @version

  */

  class Year

  /**

  * Current year

  */

  private int Year;

  /**

  * January days

  */

  public static final int JAN_DAY = ;

  /**

  * February days of a year

  * @param year

  * @return

  */

  public static final int FEB_DAY(int year)

  int feb_Day = ;

  if ((year % == && year % != ) || year % == )

  feb_Day = ;

  

  return feb_Day;

  

  /**

  * March days

  */

  public static final int MAR_DAY = ;

  /**

  * April days

  */

  public static final int APR_DAY = ;

  /**

  * May days

  */

  public static final int MAY_DAY = ;

  /**

  * June days

  */

  public static final int JUN_DAY = ;

  /**

  * July days

  */

  public static final int JUL_DAY = ;

  /**

  * August days

  */

  public static final int AUG_DAY = ;

  /**

  * September days

  */

  public static final int SEP_DAY = ;

  /**

  * Octomber days

  */

  public static final int OCT_DAY = ;

  /**

  * November days

  */

  public static final int NOV_DAY = ;

  /**

  * December days

  */

  public static final int DEC_DAY = ;

  /**

  * Create a object of a current year

  * @param Year

  */

  public Year(int Year)

  this Year = Year;

  

  /**

  * Get the max day a month

  * @param month

  * @return

  */

  public int getMaxDay(int month)

  int maxDay = ;

  switch (month)

  case :

  maxDay = JAN_DAY;

  break;

  case :

  maxDay = FEB_DAY(this Year);

  break;

  case :

  maxDay = MAR_DAY;

  break;

  case :

  maxDay = APR_DAY;

  break;

  case :

  maxDay = MAY_DAY;

  break;

  case :

  maxDay = JUN_DAY;

  break;

  case :

  maxDay = JUL_DAY;

  break;

  case :

  maxDay = AUG_DAY;

  break;

  case :

  maxDay = SEP_DAY;

  break;

  case :

  maxDay = OCT_DAY;

  break;

  case :

  maxDay = NOV_DAY;

  break;

  case :

  maxDay = DEC_DAY;

  break;

  

  return maxDay;

  

cha138/Article/program/Java/hx/201311/25785

相关参考

知识大全 随意泄漏他人身份证号码要付法律责任吗

随意泄漏他人身份证号码要付法律责任吗你好,身份证号码属于公民个人资讯,肯定要承担法律责任的;目前法律上为制止这种行为专门设立的非法提供公民个人资讯罪,当然如果情节不严重可以由公安公安机关给予治安管理处

知识大全 哪些部门可以根据姓名查询到身份证号码和户籍地址的

哪些部门可以根据姓名查询到身份证号码和户籍地址的?你既然知道省市区村,可以到当地的派出所,越是基层机关,越接近你想要的结果,不过,公民的个人身份信息不是任何一个人都能随便查询的,你要查询,估计会相当复

知识大全 身份证号码和姓名被别人知道,他们会不会利用自己的名义做坏事呢

身份证号码和姓名被别人知道,他们会不会利用自己的名义做坏事呢!作为一个对人负责的、有着优良社会公德的人知道了别人的姓名与公民身份号码是应该不会做小人、坏人的,只怕一小撮小人、坏人利用知道的TA人姓名、

知识大全 知道身份证号和姓名,能查到详细住址和电话吗

知道身份证号和姓名,能查到详细住址和电话吗?公民身份证号码是公民私人资讯,是无法单凭家庭住址以及姓名查询到的,公民若特殊情况(被骗,被盗)等情况需要寻找某人的情况,建议到公安部门报案处理。知道身份证号

知识大全 预售房合同备案后发现身份证号码错误能退房吗

预售房合同备案后发现身份证号码错误能退房吗不可以退房,但可以要求开发商撤销购房合同备案后重新再网签合同、如果要求退房,开发商是可以要求购房者缴纳违约金的。1,《商品房预售许可证》是市、县人民政府房地产

知识大全 本人没有请律师

怎样可以得到被告人的信息,比如身份证号码!本人没有请律师1、要立案,需要有明确的被告,所以在立案之前需要取得被告的身份证复印件或者公民身份信息。2、可以在签订合同时要求对方提供身份证复印件,至少提供身

知识大全 注册淘宝账号,身份证号码一定要和银行卡的身份证号码一样吗

注册淘宝账号,身份证号码一定要和银行卡的身份证号码一样吗?银行卡以和支付宝连通不一定必须一样,不过本着安全其间,你最好和银行卡的身份证号码一样问道的奇宝斋一定要注册帐号的身份证号码和银行卡的注册身份证

所谓“以IP地址或者网络名称作为被告”,其实只是针对预立案程序而言。这样,网络侵权的原告可以申请人民法院调查被告身份的相

所谓“以IP地址或者网络名称作为被告”,其实只是针对预立案程序而言。这样,网络侵权的原告可以申请人民法院调查被告身份的相关信息,可以查实的正式立案审理,无法查明的则不予受理。由此可见,这么做实际是原告

知识大全 个体工商户的税务登记证上的号码是不是法人的身份证号码

个体工商户的税务登记证上的号码是不是法人的身份证号码1、法人是没有身份号码的,法人只有工商注册编码和法人组织机构程式码。2、个体工商户的税务登记证上的号码不一定与业主的身份证号码有关,有的函有业主身份

知识大全 只知道名字和身份证地址和生日能知道这人的身份证号码或电话号码,去要怎样联系的上他

只知道名字和身份证地址和生日能知道这人的身份证号码或电话号码,去要怎样联系的上他找身份证地址当地的公安局能查出来,不过得看你有什么理由让人家帮你查了只知道名字和电话号码,怎样能查出身份证号码和家庭地址