Segue il necessario ad implementare in autonomia una implementazione circa il calcolo o il controllo del Codice Fiscale italiano.
Codice Sorgente in C# calcolo e controllo Codice Fiscale e Partita IVA, scaricabile gratuitamente: CSharp_app1_CF_.
Determinazione della sezione Cognome
I cognomi composti da più parti o comunque separati od interrotti, vengono considerati come se fossero scritti secondo un’unica ininterrotta sequenza.
Per i soggetti di sesso femminile coniugati si prende in considerazione soltanto il cognome da nubile.
Se il cognome contiene tre o più consonanti, i tre caratteri da rilevare sono, nell’ordine, la prima, la seconda e la terza consonante.
Se il cognome contiene due consonanti, i tre caratteri da rilevare sono, nell’ordine, la prima e la seconda consonante e la prima vocale.
Se il cognome contiene una consonante e due vocali, si rilevano, nell’ordine, quella consonante e quindi la prima e la seconda vocale.
Se il cognome contiene una consonante e una vocale, si rilevano la consonante e la vocale, nell’ordine, e si assume come terzo carattere la lettera X (ics).
Se il cognome è costituito da due sole vocali, esse si rilevano, nell’ordine, e si assume come terzo carattere la lettera X (ics).
Determinazione della sezione Nome
I nomi doppi, multipli o comunque composti, vengono considerati come scritti per esteso in ogni loro parte secondo un unica ininterrotta sequenza di caratteri.
Se il nome contiene quattro o più consonanti i tre caratteri da rilevare sono, nell’ordine, la prima, la terza e la quarta consonante.
Se il nome contiene tre consonanti, i tre caratteri da rilevare sono, nell’ordine, la prima, la seconda e la terza consonante.
Se il nome contiene due consonanti, i tre caratteri da rilevare sono, nell’ordine, la prima e la seconda consonante e la prima vocale.
Se il nome contiene una consonante e due vocali, si rilevano, nell’ordine, quella consonante e quindi la prima e la seconda vocale.
Se il nome contiene una consonante e una vocale, si rilevano la consonante e la vocale, nell’ordine, e si assume come terzo carattere la lettera X (ics).
Se il nome è costituito da due sole vocali, esse si rilevano, nell’ordine, e si assume come terzo carattere la lettera X (ics).
Determinazione della sezione Data di nascita e sesso
Questa sezione è una stringa di 4 caratteri in cui i primi 2 sono l’anno (del 1900) segue un carattere rappresentante il mese, infine, seguono le due cifre del giorno di nascita. Se si tratta di una donna il giorno di nascita viene aumentato di 40. Segue lo schema per determinare il carattere associato al mese.
Gennaio | A |
Febbraio | A |
Marzo | B |
Aprile | C |
Maggio | D |
Giugno | E |
Luglio | H |
Agosto | L |
Settembre | P |
Ottobre | R |
Novembre | S |
Dicembre | T |
Es. maschio 20/12/1971->71T20
Come determinare il carattere di controllo
In base alle lettere che compongono il codice fiscale si otterranno dei numeri secondo la seguente tabella. Si sommano quindi i numeri ottenuti dalle corrispondenze con i caratteri in posizione pari con quelli relativi ai caratteri in posizione dispari, il risultato si divide per 26, il resto, che è ovviamente minore di 26, lo si associa alla lettera corrispondente secondo la terza colonna della tabella ottenendo così il carattere di controllo.
Carattere | Numeroposizio. pari | Numeropos. dispari | Letteradi ctrl |
---|---|---|---|
A | 0 | 1 | 0 = A |
B | 1 | 0 | 1 = B |
C | 2 | 5 | 2 = C |
D | 3 | 7 | 3 = D |
E | 4 | 9 | 4 = E |
F | 5 | 13 | 5 = F |
G | 6 | 15 | 6 = G |
H | 7 | 17 | 7 = H |
I | 8 | 19 | 8 = I |
J | 9 | 21 | 9 = J |
K | 10 | 2 | 10=K |
L | 11 | 4 | 11=L |
M | 12 | 18 | 12=M |
N | 13 | 20 | 13=N |
O | 14 | 11 | 14=O |
P | 15 | 3 | 15=P |
Q | 16 | 6 | 16=Q |
R | 17 | 8 | 17=R |
S | 18 | 12 | 18=S |
T | 19 | 14 | 19=T |
U | 20 | 16 | 20=U |
V | 21 | 10 | 21=V |
W | 22 | 22 | 22=W |
X | 23 | 25 | 23=X |
Y | 24 | 24 | 24=Y |
Z | 25 | 23 | 25=Z |
0 | 0 | 1 | |
1 | 1 | 0 | |
2 | 2 | 5 | |
3 | 3 | 7 | |
4 | 4 | 9 | |
5 | 5 | 13 | |
6 | 6 | 15 | |
7 | 7 | 17 | |
8 | 8 | 19 | |
9 | 9 | 21 |
Esempio di calcolo:
Rossi Claudio nato il 15/10/195 a Roma:
R | S | S | C | L | D | 5 | 0 | R | 1 | 5 | H | 5 | 0 | 1 | Y |
8 | 12 | 4 | 13 | 8 | 13 | 13 | 0 | 31 | |||||||
18 | 2 | 3 | 0 | 1 | 7 | 0 | 71 |
31 + 71 = 102 : 26 = 3 con resto di 24 che corrisponde al carattere Y.
Consigli per gli sviluppatori
Nel realizzare l’applicazione di generazione del CF puoi far seguire pedissequamente i passi indicati nel testo precedente con le azioni dell’algoritmo. Buon divertimento.
Esempi:
Cognome | Nome | Sesso | Data di Nascita | Comune di nascita | Provincia | Codice Fiscale |
---|---|---|---|---|---|---|
Ito | Ugo | M | 18/03/1912 | Filacciano | Rn | TIO GUO 12C18 D586 F |
Re | Al | M | 15/05/1915 | Maclodio | Bs | REX LAX 15E15 E787 Q |
Romanello | Isidoro Giuseppe | M | 15/08/1933 | Bosa | Nu | RMN SRG 33M15 B068 L |
Vinci | Luisella | F | 05/12/1973 | Torino | To | VNC LLL 73T45 L219 N |
Pol | Ei | M | 15/12/1915 | Erba | Co | PLO EIX 15T15 D416 C |
De Paola | Patrizia | F | 16/05/1971 | Plataci | CS | DPL PRZ 71E56 G733 Y |
Purtroppo nessuno puo` scrivere una applicazione in grado di calcolare o controllare un CF, questo a causa del fenomeno di Omocodia
https://it.wikipedia.org/wiki/Omocodia
L’unica soluzione e` rivolgersi al sito dell’agenzia delle entrate
https://telematici.agenziaentrate.gov.it/VerificaCF/Scegli.do?parameter=verificaCfPf