sexta-feira, 14 de fevereiro de 2014

Método para Validar CNPJ ou CPF com C# Csharp

Método para Validar CNPJ ou CPF com C# Csharp 


No método em c#(Csharp) abaixo podemos validar um CPF ou CNPJ de acordo com o tamanho da string 11 para CPF e 14 para CNPJ.    


        /// <summary>
        /// Valida CPF ou CNPJ de acordo com o tamanho da string 11 para CPF e 14 para CNPJ
        /// </summary>
        /// <param name="cpfCNPJ"></param>
        /// <returns></returns>
        public bool ValidaCpfCNPJ(string cpfCNPJ)
        {
            if (cpfCNPJ.Length == 11)
            {
                int[] multiplicador1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 };

                int[] multiplicador2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 };

                string tempCpf;

                string digito;

                int soma;

                int resto;

                cpfCNPJ = cpfCNPJ.Trim();

                cpfCNPJ = cpfCNPJ.Replace(".", "").Replace("-", "");

                if (cpfCNPJ.Length != 11)

                    return false;

                tempCpf = cpfCNPJ.Substring(0, 9);

                soma = 0;

                for (int i = 0; i < 9; i++)


                    soma += int.Parse(tempCpf[i].ToString()) * multiplicador1[i];

                resto = soma % 11;

                if (resto < 2)

                    resto = 0;

                else

                    resto = 11 - resto;

                digito = resto.ToString();

                tempCpf = tempCpf + digito;

                soma = 0;

                for (int i = 0; i < 10; i++)

                    soma += int.Parse(tempCpf[i].ToString()) * multiplicador2[i];

                resto = soma % 11;

                if (resto < 2)

                    resto = 0;

                else

                    resto = 11 - resto;

                digito = digito + resto.ToString();

                return cpfCNPJ.EndsWith(digito);
            }
            else
            {
                int[] multiplicador1 = new int[12] { 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };

                int[] multiplicador2 = new int[13] { 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };

                int soma;

                int resto;

                string digito;

                string tempCnpj;

                cpfCNPJ = cpfCNPJ.Trim();

                cpfCNPJ = cpfCNPJ.Replace(".", "").Replace("-", "").Replace("/", "");

                if (cpfCNPJ.Length != 14)

                    return false;

                tempCnpj = cpfCNPJ.Substring(0, 12);

                soma = 0;

                for (int i = 0; i < 12; i++)

                    soma += int.Parse(tempCnpj[i].ToString()) * multiplicador1[i];

                resto = (soma % 11);

                if (resto < 2)

                    resto = 0;

                else

                    resto = 11 - resto;

                digito = resto.ToString();

                tempCnpj = tempCnpj + digito;

                soma = 0;

                for (int i = 0; i < 13; i++)

                    soma += int.Parse(tempCnpj[i].ToString()) * multiplicador2[i];

                resto = (soma % 11);

                if (resto < 2)

                    resto = 0;

                else

                    resto = 11 - resto;

                digito = digito + resto.ToString();

                return cpfCNPJ.EndsWith(digito);

            }

        }

Nenhum comentário:

Postar um comentário