Jump to content
Beatriz Pereira

Regra de Validação NIF

Recommended Posts

Beatriz Pereira

Boa Noite!

Tenho de fazer um trabalho de programação sobre o NIF aceitar só 8 dígitos em java eclipse.

Será que alguém consegue ajudar-me a meter o NIF a aceitar só 8 dígitos em java com as seguintes exceções do java: Try e catch.

Obrigada pela vossa atenção

Share this post


Link to post
Share on other sites
apocsantos

Boa noite,

 

/*
As regras para a validação do NIF são:

Tem de ter 9 dígitos;
O primeiro dígito tem de ser 1, 2, 5, 6, 8 ou 9; (Esta é a informação que circula na maior parte dos fóruns da internet, mas a realidade é que o 3 está reservado para uso de particulares assim que os começados por 2 se esgotarem e o 4 e 7 são utilizados em casos especiais, pelo que, por omissão, a nossa função ignora esta validação)
O dígito de controlo (último digíto do NIF) é obtido da seguinte forma:
9*d1 + 8*d2 + 7*d3 + 6*d4 + 5*d5 + 4*d6 + 3*d7 + 2*d8 + 1*d9  (em que d1 a d9 são os 9 dígitos do NIF);
Esta soma tem de ser múltiplo de 11 (quando divídida por 11 dar 0);
Subtraír o resto da divisão da soma por 11 a 11;
Se o resultado for 10, é assumído o algarismo 0;
[in webdados]
*/
public static boolean validaNif(String nif) 
    {
  		try
        {
		final int max=9;
		if (!nif.matches("[0-9]+") || nif.length()!=max) return false;
		int checkSum=0;
		//calcula a soma de controlo
		for (int i=0; i<max-1; i++){
			checkSum+=(nif.charAt(i)-'0')*(max-i);
		}
		int checkDigit=11-(checkSum % 11);
		if (checkDigit>=10) checkDigit=0;
		return checkDigit==nif.charAt(max-1)-'0';
        }
  catch (Exception e)
  {
	return false;
  }
  finally 
  {
  }
}

Cordiais cumprimentos

Apocsantos

  • Vote 1

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.