Advertisement
robeeeert

Validar nit

Jun 14th, 2023
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.88 KB | None | 0 0
  1.     public static boolean validarNit(String nit) {
  2.         // Asegurarse de que el NIT tenga 10 caracteres
  3.         boolean nitValido = true;
  4.         if (nit.length() >= 2 && nit.length() <= 13) {
  5.             // Realizar validación adicional si es necesario
  6.  
  7.         } else {
  8.             nitValido = false;
  9.         }
  10.        
  11.         String partes[] = nit.split("-");
  12.        
  13.         if (partes.length != 2) {
  14.             nitValido = false; // No se encontró un guion antes del último número
  15.         }
  16.        
  17.         String parte1 = partes[0];
  18.         String parte2 = partes[1];
  19.         // Separamos los primeros  dígitos del NIT, y el dígito verificador es el último
  20.         // String primerosocho = nit.substring(0, 8);
  21.         String digitoVerificador = parte2;
  22.        
  23.         int factor = parte1.length() + 1;
  24.         int valor = 0;
  25.         //10482781-5
  26.         //8+1=9 AQUI EMPIEZA EL FACTOR
  27.         //9*1=9 8*0=0 4*7=28 Y ASI SUSECIMAMENTE CON EL RESTO DE NUMEROS DEL NIT SIN INCLUIR EL DIGITO VERIFICADOR
  28.         for (int i = 0; i < parte1.length(); i++) {
  29.             // Convertimos carácter por carácter de los primeros 9 y los multiplicamos por el factor
  30.             valor += Character.getNumericValue(parte1.charAt(i)) * factor;
  31.             factor--;
  32.         }
  33.  
  34.         // A VALOR QUE ES EL NUMERO DE LA SUMA DE LAS MULTIPLICACIONES DEL FACTOR POR EL NIT SE LE SACA MOD 11
  35.         //System.out.println("este es el valor" + valor);
  36.         int residuo = valor % 11;
  37.         //System.out.println("aqui eta elresiduio" + residuo);
  38.         int resultado = 11 - residuo;
  39.         //System.out.println("aqui eta resultado" + resultado);
  40.  
  41.         if (resultado >= 10) {
  42.             resultado = 0;
  43.         }
  44.        
  45.         if (Integer.parseInt(digitoVerificador) != resultado) {
  46.             nitValido = false;
  47.         }
  48.        
  49.         return nitValido;
  50.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement