Início > Dicas / Tips > Validar CPF em C#

Validar CPF em C#

Mais uma dica no estilo: Copiar, colar e utilizar.

public static bool ValidaCpf(string cpf)
{

    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;

    cpf = cpf.Trim();
    cpf = cpf.Replace(".", "").Replace("-", "");

    if (cpf.Length != 11)
    {
        return false;
    }
    tempCpf = cpf.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;
    int soma2 = 0;

    for (int i = 0; i < 10; i++)
    {
        soma2 += int.Parse(tempCpf[i].ToString()) * multiplicador2[i];
    }

    resto = soma2 % 11;

    if (resto < 2)
    {
        resto = 0;
    }
    else
    {
        resto = 11 - resto;
    }

    digito = digito + resto.ToString();
    return cpf.EndsWith(digito);
}
Anúncios
Categorias:Dicas / Tips Tags:, , , ,
  1. Vicente
    11 - 14 às 9:32 am

    Caso o meu CPF seja de 9 digitos (antigos CPF’s), como ficaria isso?, tendo em vista que logo no inicio tenho esse validação caso seja diferente de 11 ira retornar false e sair da função.

    if (cpf.Length != 11)
    {
    return false;
    }

    tem algum solução para isso?

  1. No trackbacks yet.

Deixar uma Anotação

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

dotnettips.wordpress.com/

Helping Programmers Since 1994

Viagem e Voo

Dicas para viagens, férias e voos nacionais e internacionais

Ivan Guimarães Meirelles

Analista Desenvolvedor

Void Podcast

Vazio e sem retorno de valor

Elemar DEV

Negócios, tecnologia e desenvolvimento

2,000 Things You Should Know About WPF

Everything a WPF Developer Needs to Know, in Bite-Sized Chunks

blog

so long

Fernando Franzini Blog

Engenharia de Software e Arquitetura Ágil

Gabriel RB.net

Blog técnico, com dicas, códigos, novidades e problemas do dia-a-dia programando.

Alexandre Valente's Blog

Experiências em tecnologia e assuntos diversos

%d blogueiros gostam disto: