public bool verificaRut(int rut, string dv) { int Digito; int Contador; int Multiplo; int Acumulador; string RutDigito; Contador = 2; Acumulador = 0; while (rut != 0) { Multiplo = (rut % 10) * Contador; Acumulador = Acumulador + Multiplo; rut = rut / 10; Contador = Contador + 1; if (Contador == 8) { Contador = 2; } } Digito = 11 - (Acumulador % 11); RutDigito = Digito.ToString().Trim(); if (Digito == 10) { RutDigito = "K"; } if (Digito == 11) { RutDigito = "0"; } if (RutDigito.ToString() == dv.ToString()) { return true; } else { return false; } }
//public static bool validarRut(string rut) //{ // bool validacion = false; // try // { // rut = rut.ToUpper(); // rut = rut.Replace(".", ""); // rut = rut.Replace("-", ""); // int rutAux = int.Parse(rut.Substring(0, rut.Length - 1)); // char dv = char.Parse(rut.Substring(rut.Length - 1, 1)); // int m = 0, s = 1; // for (; rutAux != 0; rutAux /= 10) // { // s = (s + rutAux % 10 * (9 - m++ % 6)) % 11; // } // if (dv == (char)(s != 0 ? s + 47 : 75)) // { // validacion = true; // } // } // catch (Exception) // { // } // return validacion; //} public static bool validarRut(string rut) { int Digito; int Contador; int Multiplo; int Acumulador; string RutDigito; char dv; int rutAux = 0; rut = rut.ToUpper(); rut = rut.Replace(".", ""); rut = rut.Replace("-", ""); rut = rut.Replace("_", ""); rut = rut.Replace(",", ""); int cantidad = rut.Length; rutAux = int.Parse(rut.Substring(0, rut.Length - 1)); dv = char.Parse(rut.Substring(rut.Length - 1, 1)); Contador = 2; Acumulador = 0; while (rutAux != 0) { Multiplo = (rutAux % 10) * Contador; Acumulador = Acumulador + Multiplo; rutAux = rutAux / 10; Contador = Contador + 1; if (Contador == 8) { Contador = 2; } } Digito = 11 - (Acumulador % 11); RutDigito = Digito.ToString().Trim(); if (Digito == 10) { RutDigito = "K"; } if (Digito == 11) { RutDigito = "0"; } if (RutDigito.ToString() == dv.ToString()) { return true; } else { return false; } }
public string Get(string rutw) { rutw = rutw.Replace("k", "K"); string msgValido = "Rut invalido."; StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); try { if (rutw.IndexOf("-") == -1) { msgValido = "Por favor ingrese el Guión del dígito verificador(ej: 12345678 - 9)."; using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WritePropertyName("msgValido"); writer.WriteValue(msgValido); writer.WriteEndObject(); } return(sb.ToString()); } //sustrae el rut sin el digito verificador a un entero y elimina los "." int rut = Int32.Parse(rutw.Substring(0, (rutw.IndexOf("-"))).Replace(".", "")); string dv = rutw.Substring(rutw.IndexOf("-") + 1, 1); int Digito; int Contador; int Multiplo; int Acumulador; string RutDigito; Contador = 2; Acumulador = 0; while (rut != 0) { Multiplo = (rut % 10) * Contador; Acumulador = Acumulador + Multiplo; rut = rut / 10; Contador = Contador + 1; if (Contador == 8) { Contador = 2; } } Digito = 11 - (Acumulador % 11); RutDigito = Digito.ToString().Trim(); if (Digito == 10) { RutDigito = "K"; } if (Digito == 11) { RutDigito = "0"; } // Si el código verificador coincide con el rut, será Valido //de forma contraria, se mostrará como NO Valido. if (RutDigito.ToString() == dv.ToString()) { msgValido = "El Rut es Valido."; } else { msgValido = "El Rut NO ES Valido."; } using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WritePropertyName("msgValido"); writer.WriteValue(msgValido); writer.WriteEndObject(); } return(sb.ToString()); } catch (Exception e) { msgValido = "El Rut NO ES Valido."; using (JsonWriter writer = new JsonTextWriter(sw)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WritePropertyName("msgValido"); writer.WriteValue(msgValido); writer.WriteEndObject(); } return(sb.ToString()); } }