Newsgroup: it.comp.lang.c++
Titolo: >> Codice Fiscale

Peremeso che io uso il Borland C++ Development Suite 5.02 e scrivo
principalmente per il DOS.
Qualcuno mi saprebbe dare una ruotine er il calcolo dei codici
fiscali, o almeno qualche iundicazione per decifrarli "a mente"
Grazie

   Il C.F. è composto da 16 caratteri alfanumerici: i primi 15 caratteri
   indicano i dati anagrafici di ciascuna persona, e il 16° carattere S
   un carattere alfabetico di controllo.
   Da sinistra verso destra, questo è il significato dei caratteri:
  - tre caratteri alfabetici per il cognome;
  - tre caratteri alfabetici per il nome;
  - due caratteri numerici per l'anno di nascita;
  - un carattere alfabetico per il mese di nascita;
  - due numeri per il giorno di nascita e per il sesso;
  - quattro caratteri (uno alfabetico e tre numerici) per il comune
    italiano o per lo stato estero di nascita.
   I tre caratteri indicativi del cognome
  I cognomi che risultano composti da più parti vengono considerati
  secondo un'unica successione di caratteri.
  Per le donne sposate si prende in considerazione il cognome da nubile.
  Se il cognome contiene tre o più consonanti, i tre caratteri sono la
  prima, la seconda e la terza consonante.
  Se il cognome contiene due consonanti, i tre caratteri sono la prima
  e la seconda consonante e la prima vocale.
  Se il cognome contiene una consonante e due vocali, si considera la
  consonante, la prima e la seconda vocale.
  Se il cognome contiene una consonante e una vocale, si rilevano la
  consonante e la vocale e si assume come terzo carattere la lettera X.
  Se il cognome contiene due sole vocali, esse si rilevano nell' ordine
  e si assume come terzo carattere la lettera X.
   I tre caratteri indicativi del nome
  I nomi doppi o composti vengono considerati come una sola parola.
  Se il nome contiene quattro o più consonanti, i tre caratteri da
  considerare sono la prima, la terza e la quarta consonante.
  Se il nome contiene tre consonanti, i tre caratteri da rilevare sono la
  prima, la seconda e la terza consonante.
  Se il nome contiene due consonanti, i tre caratteri risultano
  nell'ordine, la prima e la seconda consonante e la prima vocale.
  Se il nome contiene una consonante e due vocali, i tre caratteri da
  rilevare sono la consonante e quindi la prima e la seconda vocale.
  Se il nome contiene una consonante e una vocale, si considera la
  consonante e la vocale e si assume come terzo carattere la lettera X.
  Se il nome è costituito da due sole vocali, oltre a queste, si assume
  come terzo carattere la lettera X.
   Data, sesso e luogo di nascita
  I due caratteri indicativi dell' anno di nascita sono le ultime due
  cifre dell' anno stesso.
  Il carattere alfabetico corrispondente al mese di nascita S quello
  stabilito nella seguente tabella:
    Gennaio  = A       Maggio = E       Settembre = P
    Febbraio = B       Giugno = H       Ottobre   = R
    Marzo    = C       Luglio = L       Novembre  = S
    Aprile   = D       Agosto = M       Dicembre  = T
  I due caratteri numerici relativi al giorno di nascita e al sesso
  vengono determinati nel modo seguente:
    - per i maschi il giorno di nascita figura invariato, con i numeri
   da 1 a 31, facendo precedere dalla cifra 0 i giorni del mese da
   1 a 9;
    - per le femmine il giorno di nascita viene aumentato di quaranta
   unità, per cui esso figura con i numeri da 41 a 71.
  I quattro caratteri alfanumerici indicativi del luogo di nascita si
  rilevano dal volume "Codici dei Comuni d'Italia" o dal volume
  "Codici degli Stati Esteri", redatti a cura della direzione generale
  del catasto e dei servizi tecnici erariali.
   Il sedicesimo carattere
  Il 16° carattere controlla la correttezza dei primi quindici.
  A ciascuno dei 15 caratteri di posto pari e di posto dispari viene
  assegnato un numero come indicato nelle tabelle seguenti:
  Conversione dei sette caratteri di posto pari
    A o 0 = 0       G o 6 = 6        M = 12       S = 18       Y = 24
    B o 1 = 1       H o 7 = 7        N = 13       T = 19       Z = 25
    C o 2 = 2       I o 8 = 8        O = 14       U = 20
    D o 3 = 3       J o 9 = 9        P = 15       V = 21
    E o 4 = 4       K     = 10       Q = 16       W = 22
    F o 5 = 5       L     = 11       R = 17       X = 23
  Conversione degli otto caratteri di posto dispari
    A o 0 = 1       G o 6 = 15       M = 18       S = 12       Y = 24
    B o 1 = 0       H o 7 = 17       N = 20       T = 14       Z = 23
    C o 2 = 5       I o 8 = 19       O = 11       U = 16
    D o 3 = 7       J o 9 = 21       P = 3        V = 10
    E o 4 = 9       K     = 2        Q = 6        W = 22
    F o 5 = 13      L     = 4        R = 8        X = 25
  I numeri così definiti vengono addizionati e la somma si divide per
  il numero 26.
  Il carattere di controllo si ottiene convertendo il resto di tale
  divisione nel carattere corrispondente come indicato nella seguente:
  Conversione del resto nel carattere di controllo
    0 = A      6  = G      12 = M      18 = S      24 = Y
    1 = B      7  = H      13 = N      19 = T      25 = Z
    2 = C      8  = I      14 = O      20 = U
    3 = D      9  = J      15 = P      21 = V
    4 = E      10 = K      16 = Q      22 = W
    5 = F      11 = L      17 = R      23 = X
--
Stefano Tempesta
TSoft - 
www.tempesta.org
in...@tempesta.org