DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

Calcular O Dígito De Controle Do Bilhete De Identidade

02.13.2008
| 4128 views |
  • submit to reddit
        Este método Ruby ajuda a calcular o dígito de controle do Bilhete de Identidade português.

Substituir os X  na variável "var" pelos números do BI. 

Se o BI tiver menos de 8 dígitos, é necessário adicionar quantos zeros forem precisos à frente do número até obter um total de 8 dígitos (exemplo: 123456, o número torna-se 00123456)

var = (9*X) + (8*X) + (7*X) + (6*X) + (5*X) + (4*X) + (3*X) + (2*X)
digicon = (var.remainder(11) - 11).abs

A partir de informação em http://www.atractor.pt/mat/alg_controlo/bi/BI_texto.htm