Created
July 12, 2017 14:46
-
-
Save gregorypilar/1569baf02f011ff25f27697638435aad to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//* Método o función para validar una cédula dominicana* | |
public bool ValidaCedula(string cedula) | |
{ | |
//Declaración de variables a nivel de método o función. | |
int verificador = 0; | |
int digito = 0; | |
int digitoVerificador=0; | |
int digitoImpar = 0; | |
int sumaPar = 0; | |
int sumaImpar = 0; | |
int longitud = Convert.ToInt32(cedula.Length); | |
/*Control de errores en el código*/ | |
try | |
{ | |
//verificamos que la longitud del parametro sea igual a 11 | |
if (longitud == 11) | |
{ | |
digitoVerificador = Convert.ToInt32(cedula.Substring(10, 1)); | |
//recorremos en un ciclo for cada dígito de la cédula | |
for (int i = 9; i >= 0; i--) | |
{ | |
//si el digito no es par multiplicamos por 2 | |
digito = Convert.ToInt32(cedula.Substring(i, 1)); | |
if ((i % 2) != 0) | |
{ | |
digitoImpar = digito * 2; | |
//si el digito obtenido es mayor a 10, restamos 9 | |
if (digitoImpar >= 10) | |
{ | |
digitoImpar = digitoImpar - 9; | |
} | |
sumaImpar = sumaImpar + digitoImpar; | |
} | |
/*En los demás casos sumamos el dígito y lo aculamos | |
en la variable */ | |
else | |
{ | |
sumaPar = sumaPar + digito; | |
} | |
} | |
/*Obtenemos el verificador restandole a 10 el modulo 10 | |
de la suma total de los dígitos*/ | |
verificador = 10 - ((sumaPar + sumaImpar) % 10); | |
/*si el verificador es igual a 10 y el dígito verificador | |
es igual a cero o el verificador y el dígito verificador | |
son iguales retorna verdadero*/ | |
if (((verificador == 10) & (digitoVerificador == 0)) | |
|| (verificador == digitoVerificador)) | |
{ | |
return true; | |
} | |
} | |
else | |
{ | |
Console.WriteLine("La cédula debe contener once(11) digitos"); | |
} | |
} | |
catch | |
{ | |
Console.WriteLine("No se pudo validar la cédula"); | |
} | |
return false; | |
} |
hay una variable que falta, si te fijas dice i > en el loop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Muchas gracias