Il calcolo del Codice Fiscale

 Mostreremo in questo articolo un algoritmo molto comune; è l'algoritmo che ci permette di calcolare il Codice Fiscale. Oltre a questo dotNetHell mette a disposizione un Web Service che può essere "consumato" (utilizzato) da chiunque liberamente.


Cos'è il Codice Fiscale

Il Codice Fiscale è un "codice" (lo dice la parola stessa), che identifica in modo univoco le persone che sono iscritte nei registri dell'anagrafe tributaria cioè i dati che servono poi per fare funzionare tutto il sistema tributario (Fisco, da qui "fiscale"), quindi pagamento tasse, imposte, e così via.


Struttura del Codice Fiscale

E' un codice Alfanumerico (composto da lettere e numeri) di 16 caratteri.
I primi 15 sono relativi ai dati personali (nome, cognome, sesso, data di nascita e luogo di nascita) mentre l'ultimo è un carattere di controllo che viene calcolato con delle formule applicate ai precedenti 15 caratteri.
Vediamo un codice fiscale:


Un codice fiscale di esempio


Come vedete è composto dai seguenti blocchi:

  • 3 lettere per il cognome

  • 3 lettere per il nome

  • l'anno di nascita (numero)

  • il mese della data di nascita (lettera)

  • il giorno della data di nascita (numero)

  • il codice del comune di nascita

  • il carattere di controllo



L'algoritmo di calcolo


Cognome
Sono necessario come detto prima 3 caratteri per rappresentare il cognome, e sono la prima la seconda e la terza consonante del cognome.
E' possibile che le consonanti siano meno di tre, in questo caso è possibile aggiungere le vocali nell'ordine in cui compaiono nel cognome.
Per cognomi più corti di 3 caratteri, è possibile sostituire il carattere mancante con la lettera X.
Chiaramente se ci sono cognomi con più parti, è necessario rimuovere gli spazi e considerare tutto come un cognome unico.

Esempi:
(Normale) Cognome : "ROSSI" - Codice Cognome : "RSS"
(Solo due consonanti) Cognome : "RIVA" - Codice Cognome : "RVI"
(Cognome minore di 3 car.) Cognome : "RE" - Codice Cognome : "REX"
(Cognome composto) Cognome : "DE CRESCENZO" - Codice Cognome : "DCR"

Nome
Per il nome il discorso è simile, qui abbiamo bisogno della prima, la terza e la quarta consonante.
Anche qui potremmo trovarci nella situazione di un numero di consonanti minore di 3 e allo stesso modo si aggiungo le vocali.
Ripetiamo anche qui che se il nome è più corto di 3 lettere è possibile sostituire i caratteri mancanti con delle X.
Se il nome fosse composto da più nomi, bisogna considerarlo tutto assieme.

Esempi:
(Normale) Nome: "MARTA" - Codice Nome: "MRT"
(Solo due consonanti) Nome : "SALA" - Codice Nome : "SLA"
(Nome minore di 3 car.) Nome: "AL" - Codice Nome : "LAX"
(Nome composto) Nome : "MARIA PIA" - Codice Nome : "MRP"

Anno di nascita
Per l'anno vengono prese semplicemente le ultime due cifre.

Esempio:
Anno : 1970 - Codice Anno: 70

Mese
Per quanto riguarda il mese c'è una tabella di conversione che riportiamo qui di seguito. Ad ogni mese corrisponde una lettera dell'alfabeto:


Tabella per la conversione del mese


Giorno
In questo caso è sufficiente riportare il numero del giorno, con il particolare che per le donne questo numero deve essere aumentato di 40!

Esempi:
Uomo nato il : 22/10/1980 - Codice Giorno: 22
Donna nata il : 22/10/1980 - Codice Giorno: 62

Comune di nascita
E' composto da quattro caratteri alfanumerici. E' il codice del comune rilevati dai volumi dei codici dei comuni italiani. Ci sono database che contengono tutti i comuni d'Italia con relativi codici.

Esempi:
Comune : Brescia - Codice Comune :B157

Il codice di controllo

Rimane l'ultimo carattere, è il codice di controllo, forse la procedura più noiosa è proprio il calcolo di quest'ultimo carattere e quindi gli dedichiamo un intero paragrafo.

Partiamo subito mostrando questa tabella:


Tabelle per le conversioni dei caratteri


Si comincia con il prendere i caratteri del codice fiscale fin qui calcolato che sono 15, si prendono quelli in posizione pari e si convertono con i numeri corrispondenti della prima tabella. Tutti questi numeri vengono sommati.

Allo stesso modo con i caratteri dispari che devono essere convertiti però utilizzando la seconda tabella e vengono tutti sommati.

I valori ottenuti vengono a loro volta sommati e il totale viene diviso per 26.
Il resto della divisione deve essere convertito usando l'ultima tabella.
Il carattere corrispondente è il codice di controllo!


Torna indietro