Con EXCEL:
=CONCATENAR(A1;EXTRAE("TRWAGMYFPDXBNJZSQVHLCKE";RESIDUO(A1;23)+1;1))
Siendo A1 la celda de origen del DNI sin letra.
Con SAP (ABAP):
FORM resultado USING VALUE(GV_NUMBER)
DATA GV_result(9) TYPE c.
DATA lt_letters(24) TYPE c VALUE 'TRWAGMYFPDXBNJZSQVHLCKE'.
DATA lv_num TYPE i.
DATA lv_number(8) type n.
lv_number = gv_number.
lv_num = gv_number MOD 23.
gv_character = lt_letters+lv_num(1).
CONCATENATE lv_number gv_character INTO gv_result.
ENDFORM. " resultado
Siendo gv_result el nº de nif con la letra.
Con Python:
DNI=12345678
NIF='TRWAGMYFPDXBNJZSQVHLCKE'
print "El NIF del DNI es", NIF[DNI%23]
Con Ruby:
DNI = 12345678
NIF = 'TRWAGMYFPDXBNJZSQVHLCKE'
puts "El NIF del DNI es #{NIF[DNI % 23].chr}"
Con C++:
#include #include
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: " <<>\n\n";
else
{
if (strlen(argv[1]) != kTAM)
cout << "DNI no valido.\n\n"; else { dni = atoi (argv[1]); dni %= 23; cout <<>
No me extraña la proliferación de los Excel silvestres.
Chorrada encontrada en Wikilibros
2 comentarios:
Y para pruebas el 00000000T, el usuario fantasma.
mmmm....
la fórmula excel supone muchas cosas, como que la celda A1 está rellena y es un número...
en ese caso permitidme romper una lanza por C/C++, suponiendo que en la variable dni se tiene la cifra del DNI.... la letra se calcula así:
char letra=((const char *)"TRWAGMYFPDXBNJZSQVHLCKE")[dni%23];
Publicar un comentario