[ Cola @ 27.08.2008. 07:35 ] @
Imao sam zadatak da validiram JMBG i JIB 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; } 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'; 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 |