Foros del Web » Programando para Internet » ASP Clásico »

funcion calcular NIF, matricula y fecha valida.

Estas en el tema de funcion calcular NIF, matricula y fecha valida. en el foro de ASP Clásico en Foros del Web. si alguien tiene algo hecho; la del nif, creo q no es dificil, supongo q la encontrare en google, la de la matriculas en españa, ...
  #1 (permalink)  
Antiguo 15/04/2005, 04:17
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 5 meses
Puntos: 0
funcion calcular NIF, matricula y fecha valida.

si alguien tiene algo hecho;

la del nif, creo q no es dificil, supongo q la encontrare en google,

la de la matriculas en españa, yo no encuentro nada.

si teneis las de bancos tb lo agradeceria.

y mi granito de arena
la de fecha valida yo hago esto, para mysql y asp, con un toqur d jscrip

<%
function Cfecha (fecha)
if IsDate(Fecha) then
anho=year(fecha)
mes = month (fecha)
dia =day(fecha)
Cfecha=anho & "/" & mes & "/" & dia
Elseif (Fecha<>"") then
MM_abortEdit = "True"
%>
<script language="JavaScript">
alert("Formato de Fecha no válido: DD/MM/AAAA");
history.back();
</script>
<%
end if
end function
%>
  #2 (permalink)  
Antiguo 15/04/2005, 04:34
Avatar de txarly  
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 21 años, 3 meses
Puntos: 2
Para calcular el NIF aplica lo siguiente:

NIF = Mid("TRWAGMYFPDXBNJZSQVHLCKE", (DNI Mod 23) + 1, 1)

siendo DNI el nº del DNI

Un saludo
Txarly
__________________
¿Por qué Uri Geller doblaba cucharas?
  #3 (permalink)  
Antiguo 15/04/2005, 07:34
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
Bueno, yo tengo esto en VBA para excel. Te lo paso tal y como lo tengo para que lo adaptes con unos pequeños cambios a asp:

NIF:
Código:
'si el número del NIF es numérico
    If IsNumeric(NumeroNIF) Then
        'le da formato con punto de millar
        NumeroNIF = Format(NumeroNIF, "##,##0")
        'y calculamos la letra asignada
        Dim PasarNumeroALetra As Long
        PasarNumeroALetra = NumeroNIF - Int(NumeroNIF / 23) * 23
        Select Case PasarNumeroALetra
            Case 0
                Texto2.Caption = "T"
            Case 1
                Texto2.Caption = "R"
            Case 2
                Texto2.Caption = "W"
            Case 3
                Texto2.Caption = "A"
            Case 4
                Texto2.Caption = "G"
            Case 5
                Texto2.Caption = "M"
            Case 6
                Texto2.Caption = "Y"
            Case 7
                Texto2.Caption = "F"
            Case 8
                Texto2.Caption = "P"
            Case 9
                Texto2.Caption = "D"
            Case 10
                Texto2.Caption = "X"
            Case 11
                Texto2.Caption = "B"
            Case 12
                Texto2.Caption = "N"
            Case 13
                Texto2.Caption = "J"
            Case 14
                Texto2.Caption = "Z"
            Case 15
                Texto2.Caption = "S"
            Case 16
                Texto2.Caption = "Q"
            Case 17
                Texto2.Caption = "V"
            Case 18
                Texto2.Caption = "H"
            Case 19
                Texto2.Caption = "L"
            Case 20
                Texto2.Caption = "C"
            Case 21
                Texto2.Caption = "K"
            Case 22
                Texto2.Caption = "E"
            Case 23
                Texto2.Caption = "T"
        End Select
        'ponemos la etiqueta correspondiente
        Texto3.Caption = NumeroNIF & "-" & Texto2.Caption
    End If
Para los bancos, imagino que buscas algo que valide el dígito de control, ¿no?. Pues ahí va (de VBA para excel):

Código:
    'si los datos tienen el formato exigido (10 dígitos la cuenta,
    'y 4 dígitos la entidad y la oficina), o si no están vacías cualquiera de ellas...
    If Cuenta = Format(Cuenta, "0000000000") And Oficina = Format(Oficina, "0000") _
    And Entidad = Format(Entidad, "0000") And Cuenta <> "" And Oficina <> "" And Entidad <> "" Then
        'Mid sifnifica extraer un valor
        N1 = Mid(Entidad, 1, 1) * 4
        N2 = Mid(Entidad, 2, 1) * 8
        n3 = Mid(Entidad, 3, 1) * 5
        n4 = Mid(Entidad, 4, 1) * 10
        n5 = Mid(Oficina, 1, 1) * 9
        n6 = Mid(Oficina, 2, 1) * 7
        N7 = Mid(Oficina, 3, 1) * 3
        N8 = Mid(Oficina, 4, 1) * 6
        'Mod significa obtener residuo de una división
        N9 = (N1 + N2 + n3 + n4 + n5 + n6 + N7 + N8) Mod 11
        PrimerDigito = 11 - N9
        If PrimerDigito = 10 Then
            PrimerDigito = 1
        End If
        If PrimerDigito = 11 Then
            PrimerDigito = 0
        End If
        N1 = Empty
        N2 = Empty
        n3 = Empty
        n4 = Empty
        n5 = Empty
        n6 = Empty
        N7 = Empty
        N8 = Empty
        N9 = Empty
        N1 = Mid(Cuenta, 1, 1) * 1
        N2 = Mid(Cuenta, 2, 1) * 2
        n3 = Mid(Cuenta, 3, 1) * 4
        n4 = Mid(Cuenta, 4, 1) * 8
        n5 = Mid(Cuenta, 5, 1) * 5
        n6 = Mid(Cuenta, 6, 1) * 10
        N7 = Mid(Cuenta, 7, 1) * 9
        N8 = Mid(Cuenta, 8, 1) * 7
        N9 = Mid(Cuenta, 9, 1) * 3
        N10 = Mid(Cuenta, 10, 1) * 6
        N11 = (N1 + N2 + n3 + n4 + n5 + n6 + N7 + N8 + N9 + N10) Mod 11
        SegundoDigito = 11 - N11
        If SegundoDigito = 10 Then
            SegundoDigito = 1
        End If
        If SegundoDigito = 11 Then
            SegundoDigito = 0
        End If
        'escribimos el Dígito de Control completo
        Texto4.Caption = PrimerDigito & SegundoDigito
        Texto5.Caption = Entidad & "-" & Oficina & "-" & PrimerDigito & SegundoDigito & "-" & Cuenta
        'Liberamos memoria
        N1 = Empty
        N2 = Empty
        n3 = Empty
        n4 = Empty
        n5 = Empty
        n6 = Empty
        N7 = Empty
        N8 = Empty
        N9 = Empty
        N10 = Empty
        N11 = Empty
        PrimerDigito = Empty
        SegundoDigito = Empty
    Else
        'si la cuenta no tiene el formato de 10 dígitos exigido
        If Cuenta <> Format(Cuenta, "0000000000") Then
        'que elimine la entrada
        Cuenta = Empty
        Cuenta.SetFocus
        End If
        'si la entidad no tiene el formato de 4 dígitos exigido
        If Oficina <> Format(Oficina, "0000") Then
        'que elimine la entrada
        Oficina = Empty
        Oficina.SetFocus
        End If
        'si la oficina no tiene el formato de 4 dígitos exigido
        If Entidad <> Format(Entidad, "0000") Then
        'que elimine la entrada
        Entidad = Empty
        Entidad.SetFocus
        End If
    End If
Ojo, esto es esn Visual Basic para Aplicaciones, y yo lo uso en excel (bueno, eso y un poco más de código, pero el necesario para el cálculo del nif y dígito de control es lo que te he puesto). No lo tengo aplicado en asp.

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:09.