Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save gregorypilar/1569baf02f011ff25f27697638435aad to your computer and use it in GitHub Desktop.
Save gregorypilar/1569baf02f011ff25f27697638435aad to your computer and use it in GitHub Desktop.
//* 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;
}
@eliezerhilario
Copy link

Muchas gracias

@mota57
Copy link

mota57 commented Jul 18, 2021

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