"El primer paso para llegar a cualquier parte es decidir que no te vas a quedar donde estás.... da tu primer paso hoy no importa que no veas el camino......"
domingo, 28 de julio de 2013
Validación Cedula de Identidad Ecuatoriana
/* Este método permite validar :
- la longitud de la cadena ingresada sea igual a 10 caracteres
- que los caracteres ingresados sean solo digitos entre 0 - 9.
- la verificación de la cédula de identidad ecuatoriana.
*/
private static final int num_provincias = 24;
@Override
public boolean validate(FormFieldValue arg0, Locale arg1) {
String cedula = arg0.getValue().toString();
if(cedula.length() == 10){
char[] caracteres = new char[cedula.length()];
for (int i = 0; i < cedula.length(); i++) {
caracteres[i] = (char)cedula.charAt(i);
//System.out.println(caracteres[i]);
if (!Character.isDigit(caracteres[i])) {
return false;
}
}
//verifica que los dos primeros dígitos correspondan a un valor entre 1 y NUMERO_DE_PROVINCIAS
int prov = Integer.parseInt(cedula.substring(0, 2));
if (!((prov > 0) && (prov <= num_provincias))) {
//addError("La cédula ingresada no es válida");
System.out.println("Error: cedula ingresada mal");
return false;
}
//verifica que el último dígito de la cédula sea válido
int[] d = new int[10];
//Asignamos el string a un array
for (int i = 0; i < d.length; i++) {
d[i] = Integer.parseInt(cedula.charAt(i) + "");
}
int imp = 0;
int par = 0;
//sumamos los duplos de posición impar
for (int i = 0; i < d.length; i += 2) {
d[i] = ((d[i] * 2) > 9) ? ((d[i] * 2) - 9) : (d[i] * 2);
imp += d[i];
}
//sumamos los digitos de posición par
for (int i = 1; i < (d.length - 1); i += 2) {
par += d[i];
}
//Sumamos los dos resultados
int suma = imp + par;
//Restamos de la decena superior
int d10 = Integer.parseInt(String.valueOf(suma + 10).substring(0, 1) +
"0") - suma;
//Si es diez el décimo dígito es cero
d10 = (d10 == 10) ? 0 : d10;
//si el décimo dígito calculado es igual al digitado la cédula es correcta
if (d10 == d[9]) {
return true;
}else {
//addError("La cédula ingresada no es válida");
return false;
}
}
else {
return false;
}
}
- la longitud de la cadena ingresada sea igual a 10 caracteres
- que los caracteres ingresados sean solo digitos entre 0 - 9.
- la verificación de la cédula de identidad ecuatoriana.
*/
private static final int num_provincias = 24;
@Override
public boolean validate(FormFieldValue arg0, Locale arg1) {
String cedula = arg0.getValue().toString();
if(cedula.length() == 10){
char[] caracteres = new char[cedula.length()];
for (int i = 0; i < cedula.length(); i++) {
caracteres[i] = (char)cedula.charAt(i);
//System.out.println(caracteres[i]);
if (!Character.isDigit(caracteres[i])) {
return false;
}
}
//verifica que los dos primeros dígitos correspondan a un valor entre 1 y NUMERO_DE_PROVINCIAS
int prov = Integer.parseInt(cedula.substring(0, 2));
if (!((prov > 0) && (prov <= num_provincias))) {
//addError("La cédula ingresada no es válida");
System.out.println("Error: cedula ingresada mal");
return false;
}
//verifica que el último dígito de la cédula sea válido
int[] d = new int[10];
//Asignamos el string a un array
for (int i = 0; i < d.length; i++) {
d[i] = Integer.parseInt(cedula.charAt(i) + "");
}
int imp = 0;
int par = 0;
//sumamos los duplos de posición impar
for (int i = 0; i < d.length; i += 2) {
d[i] = ((d[i] * 2) > 9) ? ((d[i] * 2) - 9) : (d[i] * 2);
imp += d[i];
}
//sumamos los digitos de posición par
for (int i = 1; i < (d.length - 1); i += 2) {
par += d[i];
}
//Sumamos los dos resultados
int suma = imp + par;
//Restamos de la decena superior
int d10 = Integer.parseInt(String.valueOf(suma + 10).substring(0, 1) +
"0") - suma;
//Si es diez el décimo dígito es cero
d10 = (d10 == 10) ? 0 : d10;
//si el décimo dígito calculado es igual al digitado la cédula es correcta
if (d10 == d[9]) {
return true;
}else {
//addError("La cédula ingresada no es válida");
return false;
}
}
else {
return false;
}
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario