na netu sam našao dio koda koji validira JMBG i to super radi
Code:
private bool ProveriJMBG(string JMBG)
{
if (JMBG.Length < 13)
return false;
try
{
long mb = Convert.ToInt64(JMBG);
}
catch
{
return false;
}
int [] p = new int[12];
int p13 = 0;
p[0] = (JMBG[0] - '0') * 7;
p[1] = (JMBG[1] - '0') * 6;
p[2] = (JMBG[2] - '0') * 5;
p[3] = (JMBG[3] - '0') * 4;
p[4] = (JMBG[4] - '0') * 3;
p[5] = (JMBG[5] - '0') * 2;
p[6] = (JMBG[6] - '0') * 7;
p[7] = (JMBG[7] - '0') * 6;
p[8] = (JMBG[8] - '0') * 5;
p[9] = (JMBG[9] - '0') * 4;
p[10] = (JMBG[10] - '0') * 3;
p[11] = (JMBG[11] - '0') * 2;
for (int i=0;i<12;i++)
p13+=p[i];
p13 = p13 % 11;
p13 = 11-p13;
if (p13==11)
p13=0;
if ((p13==10) || (p13!=(int)JMBG[12]-'0'))
return false;
else
return true;
}
private bool ProveriJMBG(string JMBG)
{
if (JMBG.Length < 13)
return false;
try
{
long mb = Convert.ToInt64(JMBG);
}
catch
{
return false;
}
int [] p = new int[12];
int p13 = 0;
p[0] = (JMBG[0] - '0') * 7;
p[1] = (JMBG[1] - '0') * 6;
p[2] = (JMBG[2] - '0') * 5;
p[3] = (JMBG[3] - '0') * 4;
p[4] = (JMBG[4] - '0') * 3;
p[5] = (JMBG[5] - '0') * 2;
p[6] = (JMBG[6] - '0') * 7;
p[7] = (JMBG[7] - '0') * 6;
p[8] = (JMBG[8] - '0') * 5;
p[9] = (JMBG[9] - '0') * 4;
p[10] = (JMBG[10] - '0') * 3;
p[11] = (JMBG[11] - '0') * 2;
for (int i=0;i<12;i++)
p13+=p[i];
p13 = p13 % 11;
p13 = 11-p13;
if (p13==11)
p13=0;
if ((p13==10) || (p13!=(int)JMBG[12]-'0'))
return false;
else
return true;
}
u ovom kodu se još mogu izvći datum rođenja i pol.
Za JIB ove dve informacije nisu bitne pa sam ih sklonio iz koda
Ovaj kod ne prolazi za sve JIB-ove npr. 4400286760000
Znam da je za JIB uslov da
Code:
JMBG[0] == '4';
JMBG[0] == '4';
tj prva cifra mora biti 4
međutim JIB-ovi koji završavaju na sa cifrom nula (kontrolna cifra je nula) ne prolaze validaciju jer u kodu za JMBG piše ako je p13==10 da će vratiti false tj neuspješnu validaciju, a baš za te JIBove koji završavaju sa cifrom 0 dobijemo da je p13==10. Navedeni JIB je validan i ako za njega provjerimo dobićemo da je p13 jednako 10.
Da li neko zna algoritam za validaciju JIBa??? Ne znam koliko je to interesantno tj, da li se razlikuje ali ovo je za BIH teritoriju (možda se za Sr i Hr razlikuju)
Hvala