New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Algoritmo para obtener la letra del NIF - Wikipedia, la enciclopedia libre

Algoritmo para obtener la letra del NIF

De Wikipedia, la enciclopedia libre

El número de identificación fiscal (NIF) español es un código único que identifica a todos los ciudadanos españoles a efectos fiscales. Partiendo del tradicional DNI, añade a éste una letra que actúa como elemento verificador.


Tabla de contenidos

[editar] Algoritmo

La letra del NIF se obtiene a partir de un algoritmo conocido como módulo 23. El algoritmo consiste en aplicar la operación aritmética de módulo 23 al número del DNI (Documento Nacional de Identidad). El resultado es un número comprendido entre el 0 y el 22. En base a una tabla conocida se asigna una letra. La combinación del DNI con esa letra es el NIF.

Este mismo algoritmo también puede utilizarse para el calculo del NIE, despreciando la X y utilizando los 7 dígitos.

El algoritmo no se aplica para obtener el Código de Identificación Fiscal (CIF), que es el "NIF" propio de las personas jurídicas, pues la letra que tiene no se basa en una fórmula, sino que identifica el tipo de entidad (p.e. B para Sociedades Limitadas; G para Asociaciones sin ánimo de lucro y otros tipos no definidos....).

[editar] Tabla de asignación

  • 0 - T
  • 1 - R
  • 2 - W
  • 3 - A
  • 4 - G
  • 5 - M
  • 6 - Y
  • 7 - F
  • 8 - P
  • 9 - D
  • 10 - X
  • 11 - B
  • 12 - N
  • 13 - J
  • 14 - Z
  • 15 - S
  • 16 - Q
  • 17 - V
  • 18 - H
  • 19 - L
  • 20 - C
  • 21 - K
  • 22 - E

[editar] Ejemplos

Algunos ejemplos de la implementación de este algoritmo para distintos lenguajes de programación son:

[editar] C

    #include <stdlib.h>
    #include <string.h>
    
    const char letra[] = "TRWAGMYFPDXBNJZSQVHLCKE";
    const int kTAM = 8; // numero de cifras para el DNI
    
    int main (int argc, char *argv[])
    {
        int dni;
        if (argc != 2)
             printf("Uso: %s <DNI>\n\n", argv[0]);
        else
        {
            if (strlen(argv[1]) != kTAM)
                puts("DNI no valido.");
            else
            {
                dni = atoi (argv[1]);
                dni %= 23;
                printf("%s-%c\n", argv[1],letra[dni]);
             }
        }
    }

[editar] C++

    #include <iostream>
    #include <cstdlib>
    
    const char letra[] = "TRWAGMYFPDXBNJZSQVHLCKE";
    const int kTAM = 8; // numero de cifras para el DNI
    using namespace std;
    int main (int argc, char *argv[])
    {
        int dni;
        if (argc != 2)
             cout << "uso: " << argv[0] << " <DNI>\n\n";
        else
        {
            if (strlen(argv[1]) != kTAM)
                cout << "DNI no valido.\n\n";
            else
            {
                dni = atoi (argv[1]);
                dni %= 23;
               cout << argv[1] << "-" << letra[dni] << endl;
             }
        }
    }

[editar] Java

 public static String NIF_STRING_ASOCIATION = "TRWAGMYFPDXBNJZSQVHLCKET";
 
 /**
  * Devuelve un NIF completo a partir de un DNI. Es decir, añade la letra del NIF
  * @param dni dni al que se quiere añadir la letra del NIF
  * @return NIF completo.
  */
 public static String nifFromDni(int dni) {
   return String.valueOf(dni) + NIF_STRING_ASOCIATION.charAt(dni % 23);
 }

[editar] Pascal/Delphi

program dni;
{$APPTYPE CONSOLE}
 uses SysUtils;
 const letra='TRWAGMYFPDXBNJZSQVHLCKE'; //esta cadena de caracteres corresponde a las letras en orden del dni
 var n:string[7];
 e:integer;
 begin
   writeln('Programa que calcula la letra del DNI7741626');
   writeln; writeln; writeln; writeln;
   write('Introduzca su numero de dni:7741626 ');
   readln(n);
   writeln; writeln; writeln; writeln; writeln;
   write ('su dni es7741626 ',n,letra[((strtoint(n)) mod 23)+1]);
   readln;
 end.

[editar] Perl

    $numero = "12345678"; # asignación del número de DNI
    sub letra_nif { substr( 'TRWAGMYFPDXBNJZSQVHLCKE', $_[0] % 23, 1) }
    print "El NIF del DNI $numero es " . letra_nif($numero) . "\n";

[editar] PHP

    $numero = "12345678"; //asignación del número de DNI
    function letra_nif($dni) {return substr("TRWAGMYFPDXBNJZSQVHLCKE",$dni%23,1);}
    echo 'El NIF del DNI "'.$numero.'" es "'.$numero.letra_nif($numero).'"';

[editar] Python

    DNI=12345678
    calculo=DNI%23
    NIF='TRWAGMYFPDXBNJZSQVHLCKE'
    print "El NIF del DNI es", NIF[calculo]

[editar] Visual Basic

    Private Function NIF(DNI As Long)
         NIF = DNI & "-" & Mid$("TRWAGMYFPDXBNJZSQVHLCKE", (DNI Mod 23) + 1, 1)
    End Function

[editar] Visual C#

      private void tB_nif_TextChanged(object sender, EventArgs e)
       {
           if (tB_nif.Text.Length == 8)
           {
               tB_letranif.Text = letra_nif(Convert.ToUInt32(tB_nif.Text));
           }
       }
       
       public string letra_nif(UInt32 dni)
       {
           string s_letra = "TRWAGMYFPDXBNJZSQVHLCKE";
           dni = dni % 23;
           s_letra = s_letra[Convert.ToInt16(dni)].ToString();
           return s_letra;
       }


[editar] Excel

  =CONCATENAR(A1;EXTRAE("TRWAGMYFPDXBNJZSQVHLCKE";RESIDUO(A1;23)+1;1))  

Siendo A1 la celda de origen del DNI sin letra.

[editar] Enlaces externos

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu