Calcolo del Check Digit di un Iban

Posted on 26 agosto 2022. Filed under: Senza categoria |

Terzo e ultimo articolo della serie dedicata ai codici Iban.

In questo articolo vedremo come calcolare il Check Digit di un codice Iban.

Avendo già codice Abi, codice Cab e numero di conto corrente, abbiamo visto nell’articolo https://pieer11.wordpress.com/2022/08/24/calcolo-del-codice-cin-in-un-iban/ come calcolare il codice CIN.

Con questi codice dobbiamo prima mettere il “IT00” alla fine (00 perché ancora non è conosciuto)

Dobbiamo quindi cambiare il codice CIN e IT in un valore numerico, dove A corrisponde a 10, B corrisponde a 11 e così via.

Alla fine otteniamo un numero intero di circa 30 cifre.

Su questo numero dobbiamo ottenere il resto della divisione per 97, che sottratto a 98 ci darà il numero da mettere dopo l’IT.

Il codice in VB.NET è questo

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim abi As String = "01005"
        Dim cab As String = "01613"
        Dim cc As String = "000000003712"
        Dim CIN As String = CalcolaCin(abi, cab, cc)
        Dim EUROcIN As String = CalcolaEuroCin(CIN, abi, cab, cc, "IT00")
         MessageBox.Show("Il tuo Codice di controllo: " & EUROcIN )
    End Sub

    Private Function CalcolaEuroCin(cIN As String, abi As String, cab As String, cc As String, v As String) As String
        Dim bban As String = cIN + abi + cab + cc + v
        Dim sban As String = ""
        Dim alfa() As String = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}

        For Each adigit In bban
            If IsNumeric(adigit) = False Then
                Dim p = 0
                For Each achar In alfa
                    p = p + 1
                    If adigit = achar Then
                        cc = p + 9
                        sban = sban & cc
                    End If
                Next
            Else
                cc = adigit
                sban = sban & cc
            End If
        Next
        Dim ci = Mod97(sban)
        Dim resto = 98 - ci
        Return resto
    End Function

    Function Mod97(ByVal vIban)
        Dim i, m, digit
        m = 0
        For i = 1 To Len(vIban)
            digit = CInt(Mid(vIban, i, 1))
            m = (10 * m + digit) Mod 97
        Next
        Mod97 = m
    End Function

ed ecco la finestra con il codice.

Infine possiamo quindi calcolare l’IBAN.

MessageBox.Show("IL TUO CODICE IBAN: " & "IT" & EUROcIN & CIN & abi & cab & cc)

Attenzione che questa procedura funziona solo pe gli IT, ma volendo lo si può personalizzare per altre nazioni, sapendo come è composto l’Iban in ciascuna nazione.

Ad esempio per la Germania, aggiungete quest4e righe all’inizio della funzione CalcolaEuroCin:

        cin = "10010010"
        abi = ""
        cab = ""
        cc = "0987654321"
        v = "DE00"

Risulterà un codice di controllo equivalente a 29.

L’Iban sarà quindi: DE29100100100987654321. L’importante è sapere il numero di caratteri per il controllo e il numero di caratteri per il conto.

Ho finito questa parte, e dal prossimo articolo si tornerà a parlare di fisica dell’atmosfera, leggi sulla termodinamica e relative formule.

Make a Comment

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Liked it here?
Why not try sites on the blogroll...

%d blogger hanno fatto clic su Mi Piace per questo: