Newsgroup: it.comp.lang.c++
Titolo: Codice Fiscale: dovre trovo l'algoritmo e i DB?

C'è qualcuno che conserva in qualche meandro del proprio HD
l'algoritmo di codifica-decodifica del codice fiscale?
E dei DB necessari per "costruirne" uno?
Tnx a lot :)
			Francesco

 E dei DB necessari per "costruirne" uno?
A quanto ne so io, il codice fiscale puň essere solo controllato. La
generazione non segue sempre la regola standard ma dipende dalle scelte
del Ministero delle Finanze.
EMG

/* Il C.F. e' composto da 16 caratteri alfanumerici: i primi 15 caratteri
   indicano i dati anagrafici di ciascuna persona, e il 16° carattere e'
   un carattere alfabetico di controllo.
   Da sinistra verso destra, questo e' il significato dei caratteri:
  - tra 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 piu' 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 piu' 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 piu' 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 e' 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 e' 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 cosi' 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
*/
Se ti interessa ho il codice in clipper.
--
Byez
Stefano Tempesta
temp...@tin.it
http://tempesta.freeweb.org

scusa, ma allora io sono una femmina???
XXXYYYxxy05 *F* 205J

 XXXYYYxxy05 *F* 205J
Questo lo sai solo tu...  Per l'anagrafe risulti maschio (05 e non
45).  F fa parte del codice del luogo di nascita (F205).
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it