El objetivo del IBAN es facilitar el tratamiento automático de pagos y cobros transfronterizos. El estándar asegura la transmisión correcta de los datos y reduce las posibilidades de intervención manual. Por tanto contribuye a evitar los costes y las demoras asociadas a la transmisión incorrecta o insuficiente de los datos relativos a las cuentas bancarias.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace IBAN_V
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string iban;
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void button1_Click(object sender, EventArgs e)
{
if (validarIBAN(iban) == true)
{
MessageBox.Show("IBAN Correcto");
}
else
{
MessageBox.Show("Algo funciona mal");
}
}
bool validarIBAN(string iban)
{
iban = textBox1.Text;
if (iban.Length < 4 || iban[0] == ' ' || iban[1] == ' ' || iban[2] == ' ' || iban[3] == ' ') throw new InvalidOperationException();
var checksum = 0;
var ibanLength = iban.Length;
for (int charIndex = 0; charIndex < ibanLength; charIndex++)
{
if (iban[charIndex] == ' ') continue;
int value;
var c = iban[(charIndex + 4) % ibanLength];
if ((c >= '0') && (c <= '9'))
{
value = c - '0';
}
else if ((c >= 'A') && (c <= 'Z'))
{
value = c - 'A';
checksum = (checksum * 10 + (value / 10 + 1)) % 97;
value %= 10;
}
else if ((c >= 'a') && (c <= 'z'))
{
value = c - 'a';
checksum = (checksum * 10 + (value / 10 + 1)) % 97;
value %= 10;
}
else throw new InvalidOperationException();
checksum = (checksum * 10 + value) % 97;
}
return checksum == 1;
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Clear();
}
}
}
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.