Skip to content

Instantly share code, notes, and snippets.

@edumelzer
Created July 11, 2018 17:46
Show Gist options
  • Save edumelzer/64d1aa601af6662d3a4657f3459393b8 to your computer and use it in GitHub Desktop.
Save edumelzer/64d1aa601af6662d3a4657f3459393b8 to your computer and use it in GitHub Desktop.
GenerateEan
Closure generateRandomEan13 = {
// Primeiro executamos os metodos de geracao
List<Integer> listaAleatoria = new ArrayList();
for (int i = 0; i < 12; i++) {
listaAleatoria.add((int) (Math.random() * 10));
}
int totalSomatoria = 0;
// Metade dos números vai ser somado sem ser multiplicado
for (int i = 0; i < listaAleatoria.size(); i += 2) {
totalSomatoria += listaAleatoria.get(i).intValue();
}
// A outra metade dos números vai ser somado multiplicando por 3
for (int i = 1; i < listaAleatoria.size(); i += 2) {
totalSomatoria += (3 * listaAleatoria.get(i).intValue());
}
// O dígito validador é quanto falta para o somatório chegar ao próximo múltiplo de 10
int digitoValidador = (10 - (totalSomatoria % 10)) % 10;
listaAleatoria.add(digitoValidador);
// Concatenando em forma de texto
String ean13 = "";
for (int i = 0; i < listaAleatoria.size(); i++) {
ean13 += listaAleatoria.get(i);
}
return ean13;
}
println generateRandomEan13()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment