O PIS (Programa de Integração Social) é um número de identificação vinculado a trabalhadores brasileiros e é fundamental para o acesso a benefícios sociais e trabalhistas. A validação do PIS é um processo importante para garantir que o número fornecido esteja correto. Neste post, vamos aprender como validar PIS em C#.

Estrutura do PIS

O PIS é composto por 11 dígitos, formatados da seguinte maneira: 123.45678.90-1. Os primeiros 8 dígitos são o número de identificação, seguidos de 1 dígito verificador que é calculado a partir dos 10 primeiros dígitos.

Passos para validar o PIS

  1. Verificar o comprimento do PIS: O PIS deve ter exatamente 11 caracteres.

  2. Remover formatação: Eliminar os pontos e o hífen para trabalhar apenas com os dígitos.

  3. Calcular o dígito verificador: Usar um algoritmo específico para validar o último dígito.

Implementação em C#

Vamos ver um exemplo de como implementar essa validação em C#:

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        Console.Write("Digite o PIS: ");
        string pis = Console.ReadLine();

        if (ValidarPIS(pis))
        {
            Console.WriteLine("PIS válido!");
        }
        else
        {
            Console.WriteLine("PIS inválido!");
        }
    }

    static bool ValidarPIS(string pis)
    {
        // Remover formatação e verificar comprimento
        pis = pis.Replace(".", "").Replace("-", "");

        if (pis.Length != 11 || !pis.All(char.IsDigit))
            return false;

        // Calcular dígito verificador
        int soma = 0;
        int[] pesos = { 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };
        
        for (int i = 0; i < 10; i++)
        {
            soma += int.Parse(pis[i].ToString()) * pesos[i];
        }

        int digitoVerificador = 11 - (soma % 11);
        if (digitoVerificador >= 10)
            digitoVerificador = 0;

        return digitoVerificador == int.Parse(pis[10].ToString());
    }
}

Explicação do código

  1. Entrada do usuário: O código solicita que o usuário insira um número PIS.

  2. Remoção de formatação: Usamos Replace para remover os pontos e o hífen do PIS.

  3. Verificação de comprimento: Checamos se o PIS tem 11 dígitos.

  4. Cálculo do dígito verificador: Um loop percorre os 10 primeiros dígitos, calcula a soma ponderada e determina o dígito verificador.

  5. Validação: Retorna true se o PIS for válido e false caso contrário.

Outro exemplo prático

Validar os dados na aplicação antes de enviá-los ao SGBD é uma prática elementar que evita muitos transtornos e processamento na base de dados.

É uma prática de segurança que visa evitar inconsistências na base de dados e torna os softwares mais seguros e robustos.

O código abaixo é um método que valida o PIS digitado. Veja:

public bool validaPIS(string pis) {

  int[] multiplicador = new int[10] { 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };
  int soma;
  int resto;

  if (pis.Trim().Length != 11)
     return false;

     pis = pis.Trim();
     pis = pis.Replace("-", "").Replace(".", "").PadLeft(11, '0');

     soma = 0;
     for (int i = 0; i < 10; i++) {
        soma += int.Parse(pis[i].ToString()) * multiplicador[i];

        resto = soma % 11;

        if (resto < 2) {
            resto = 0;
        } else {
            resto = 11 - resto;
            return pis.EndsWith(resto.ToString());
        }
      }
 }
Aprenda do zero ou aprimore seus conhecimentos em C#. Domine os conceitos de Orientação a Objetos e crie sistemas complexos integrados com banco de dados.

CONHEÇA O CURSO COMPLETO DE C# COM + DE 100 AULAS PRÁTICAS. Tenha acesso vitalício e certificado de conclusão.

CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões sobre como validar PIS em C#? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
 https://youtube.com/criandobits

Tags:

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *