Validar Cédula Ecuador | JAVA
El documento de identidad, también conocido como Cédula de Identidad (CI),
Cédula de Ciudadanía (CC), Tarjeta de Identidad (TI), Registro Civil (RC),
Cédula de Extranjería (CE), Carné de Identidad (CI), Documento Nacional de
Identidad (DNI), Documento Único de Identidad (DUI), identificación oficial
o simplemente identificación (ID), dependiendo de las denominaciones
utilizadas en cada país, es un documento público que contiene datos de
identificación personal, emitido por un empleado público con autoridad
competente para permitir la identificación personal e inequívoca de los
ciudadanos.
En el Objeto ValidarCedula va el siguiente código:
// Esta función servirá para validar la longitud de la cadena de texto private boolean stringLength(String string, int length) { if (string.length() == length) return true; return false; } // Esta función sumará y multiplicará los primeros 9 dígitos de la cédula // Aquí se multiplica los dígitos impares por 2 y los pares por 1 // Se usa el siguiente patrón 2.1.2.1.2.1.2.1.2 // Se retorna la resta de la decena superior de la suma menos la suma
// Es decir si sale la suma de todos los dígitos 36 entonces la decena superior es 40 // Por lo tanto debemos hacer lo siguiente (40-36) private byte sumDigits(byte[] digits) { byte verifier; byte sum = 0; for (byte i = 0; i < digits.length; i = (byte) (i + 2)) { verifier = (byte) (digits[i] * 2); if (verifier > 9) verifier = (byte) (verifier - 9); sum = (byte) (sum + verifier); } for (byte i = 1; i < digits.length; i = (byte) (i + 2)) { verifier = (byte) (digits[i] * 1); sum = (byte) (sum + verifier); } return (byte) ((sum - (sum % 10) + 10) - sum); } // Función principal que hace uso de las anteriores funciones public boolean idCardEcuador(String idCard) { try { if (stringLength(idCard, 10)) { String[] data = idCard.split(""); byte verifier = Byte.parseByte(data[0] + data[1]); byte[] digits = new byte[9]; for (byte i = 0; i < 9; i++) digits[i] = Byte.parseByte(data[i]); if (verifier >= 1 && verifier <= 24) { verifier = digits[2]; if (verifier <= 6) { if (sumDigits(digits) == Byte.parseByte(data[9])) return true; } } } } catch (Exception e) { e.printStackTrace(); } return false; }
Comentarios
Publicar un comentario