galera,
sei q eh meio que off topic mas acho q alguem poderia me passar o segredo do
codigo de barras em boleto bancario.
abaixo esta o meu servlet q retorna um codigo de barras onde
codigo de barras = x + dvMod11(x)
http://164.41.67.135/servlets/BarCodeServlet?x=510646565000000090
eu ja´ peguei a documentacao do banco do brasil e tambem a documentacao da
febraban, mas nao estou entendendo bulhufas em como implementar aquele
numero gigantesco que fica ao lado da logo do banco.
ex: 00199.1388 90000.000001 00913.889218 2 12980000003200
alguem pode me dizer como eu crio este numero?
de brinde mando minha classe que calcula digitos para modulo 10 e 11.
se ela estiver errada me reportem
package uni.duni.te;
public class DigitoVerificador {
/**
* Constructor
*/
public DigitoVerificador() {
}
// comente o main. ele soh serve para testar a classe.
public static void main(String[] args) {
DigitoVerificador teste= new DigitoVerificador();
long volta = 0;
volta=teste.CalculaModulo11("32198798798798798798798798377778759");
System.out.println("Mod11 de 32198798798798798798798798377778759");
System.out.println("o resultado e "+volta);
volta=teste.CalculaModulo11("20097987987987987777779879879876575765765170000
01");
System.out.println("Mod11 de
2009798798798798777777987987987657576576517000001");
System.out.println("o resultado e "+volta);
volta=teste.CalculaModulo11("20017000002");
System.out.println("Mod11 de 20017000002");
System.out.println("o resultado e "+volta);
volta=teste.CalculaModulo10("8220000215048200974123220154098290108605940");
System.out.println("Mod10 de
8220000215048200974123220154098290108605940");
System.out.println("o resultado e "+volta);
}
public long CalculaModulo11(String Entrada){
long Soma=0;
long multi=2;
long Saida=0;
int tamanho=Entrada.length()-1;
long Resto;
while(tamanho >= 0){
//System.out.println("numero"+Entrada.charAt(tamanho)+" de index
"+tamanho);
Soma=Soma+(Long.parseLong(String.valueOf(Entrada.charAt(tamanho)))*
multi);
//System.out.println("a soma e "+Soma);
multi=multi+1;
tamanho=tamanho-1;
if(multi==10)
multi=2;
}
Resto=Soma%11;
if( Resto==0 || Resto==1)
Saida=0;
else
Saida=11-Resto;
return Saida;
}
public long CalculaModulo10(String Entrada){
long Soma=0;
long multi=2;
long Saida=0;
int tamanho=Entrada.length()-1;
long inttemp;
long Resto;
while(tamanho >= 0){
//System.out.println("numero"+Entrada.charAt(tamanho)+" de index
"+tamanho);
inttemp=Long.parseLong(String.valueOf(Entrada.charAt(tamanho)))*multi;
if(inttemp>=10)
inttemp=inttemp-9;
Soma=Soma+inttemp;
//System.out.println("a soma e "+Soma);
multi=multi-1;
tamanho=tamanho-1;
if(multi==0)
multi=2;
}
Resto=Soma%10;
Saida=10-Resto;
return Saida;
}
}
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------