/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package utils;
/**
*
* @author cabachu
*/
import java.io.*;
import java.util.*;
// calcula el digito verificador de la CRIP para siglo pasado y el siglo actual
// necesita tomar los valores de entidad, municipio, oficialia, acta y año
//regresa un string que contiene la CRIP
public class CalculaCrip {
public String obtener_crip(
String strEntidad,
String strMunicipio,
String strOficialia,
String strAnio,
String strActa) {
String strdatos = "";
String strletras = "JABCDEFGHIJ "; // constantes de letras
String strnumeros = "012345678900";// constantes de numeros
int ik[] = {3, 2, 7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2}; // constante para calcular la crip
int[] imul = new int[16];
int[] inum = new int[16];
int isuma = 0;
int ix = 0;
int ia = 0;
int idigito = 0;
if (strEntidad.length() == 1) {
strEntidad = "0" + strEntidad;
} // se agrega un cero si vien 1 solo digito
if (strMunicipio.length() == 1) {
strMunicipio = "00" + strMunicipio;
}// se agregan ceros hasta copletar 3 digitos
if (strMunicipio.length() == 2) {
strMunicipio = "0" + strMunicipio;
}
if (strOficialia.length() == 1) {
strOficialia = "0" + strOficialia;
}// se agregan ceros hasta copletar 2 digitos
if (strActa.length() == 1) {
strActa = "0000" + strActa;
}// se agregan ceros hasta copletar 5 digitos
if (strActa.length() == 2) {
strActa = "000" + strActa;
}
if (strActa.length() == 3) {
strActa = "00" + strActa;
}
if (strActa.length() == 4) {
strActa = "0" + strActa;
}
strdatos = strEntidad + strMunicipio + strOficialia + strAnio.substring(2, 4) + strActa; // se contatena la raiz para calcular el digito
System.out.println(strdatos);
// a cada numero de la raiz se le multiplica por un nuemro de la constante y se suman
for (ia = 0; ia < 14; ia++) {
inum[ia] = Integer.valueOf(strdatos.substring(ia, ia + 1)).intValue();
imul[ia] = inum[ia] * ik[ia];
isuma = isuma + imul[ia];
}
// se obtiene el digito verificador
ix = isuma % 11;
System.out.println("suma ");
System.out.println(isuma);
System.out.println("digito antes de resta ");
System.out.println(ix);
if (ix <= 0) {
idigito = 0;
} else {
idigito = 11 - ix;
}
// se evalua el año y se coloca el digito verificador numero o letra
System.out.println("valor de comparacion");
System.out.println(strAnio.compareTo("1999"));
if (strAnio.compareTo("1999") > 0) {
if (idigito == 0) {
strdatos = strdatos + "J";
} else {
System.out.println(idigito);
strdatos = strdatos + strletras.substring(idigito, idigito + 1);
}
} else {
System.out.println(idigito);
strdatos = strdatos + strnumeros.substring(idigito, idigito + 1);
}
System.out.println(strdatos);
return strdatos;
}
}
lunes, 1 de julio de 2013
Cálculo de CRIP (Clave de Registro e Identidad Personal)
Código para generar la CRIP, usada normalmente en las actas de nacimiento y como parte de la CURP
Suscribirse a:
Enviar comentarios (Atom)
que hago para obtener mi crip?? meto esos codigos a mi pc, o que hago ayuda me lo estan pidiendo
ResponderEliminarEn el acta de nacimineto
ResponderEliminarEn el formato nuevo no viene el crip como puedo saber cuál es ayuda
ResponderEliminar