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 FiscaleIl 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 FiscaleE' 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 controlloRimane 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!
|