Genel
Okunan
TC Kimlik Numarası Oluşturma ve Kontrol
0

TC Kimlik Numarası Oluşturma ve Kontrol

by Arda Eralp25 Ocak 2013

TC Kimlik numaraları 11 basamaktan oluşmaktadır. İlk 9 basamak arasında kurulan bir algoritma bize 10. basmağı, ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.

Yani Kısaca;
* 11 hanelidir.
* Her hanesi rakamsal değer içerir.
* İlk hane 0 olamaz.
* 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10’a bölümünden kalan, yani Mod10’u bize 10. haneyi verir.
* 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10’a bölümünden kalan, yani Mod10’u bize 11. haneyi verir.

TC Kimlik Numarası oluşturmak için GenerateTCKimlikNo() isimli fonksiyonu, TC kimlik numarası kontrolü için için Kontrol() isimli fonksiyonu kullanabilirsiniz.

public string GenerateTCKimlikNo()
{
    String TCKN = "";
    Random numbers = new Random();

    int Flag1 = numbers.Next(10000, 99999);
    int Flag2 = numbers.Next(1000, 9999);

    int Flag1Toplam = Toplam(Flag1.ToString());

    int Flag2Toplam = Toplam(Flag2.ToString());

    int b10 = ((Flag1Toplam * 7) - Flag2Toplam) % 10;

    int b11 = (Flag1Toplam + Flag2Toplam + b10) % 10;

    for (int i = 0; i < Flag2.ToString().Length; i++)
    {
        TCKN = TCKN + Flag1.ToString()[i];
        TCKN = TCKN + Flag2.ToString()[i];
    }

    TCKN = TCKN + Flag1.ToString()[Flag1.ToString().Length-1];

    TCKN = TCKN + b10.ToString() + b11.ToString();

    return TCKN;
}


        public int Kontrol(string TCNo)
        {
            int sonuc;
            int Flag1 = Convert.ToInt32(TCNo.Substring(0, 1)) + Convert.ToInt32(TCNo.Substring(2, 1)) + Convert.ToInt32(TCNo.Substring(4, 1)) + Convert.ToInt32(TCNo.Substring(6, 1)) + Convert.ToInt32(TCNo.Substring(8, 1));
            int Flag2 = Convert.ToInt32(TCNo.Substring(1, 1)) + Convert.ToInt32(TCNo.Substring(3, 1)) + Convert.ToInt32(TCNo.Substring(5, 1)) + Convert.ToInt32(TCNo.Substring(7, 1));

            int b10 = ((Flag1 * 7) - Flag2) % 10;
            int toplam = 0;
            if (b10 == Convert.ToInt32(TCNo.Substring(9, 1)))
            {
                for (int i = 0; i < 10; i++)
                {
                    toplam = toplam + Convert.ToInt32(TCNo.Substring(i, 1));
                }
                if ((toplam % 10) == Convert.ToInt32(TCNo.Substring(10, 1)))
                {
                    sonuc = 1;
                }
                else
                    sonuc = 0;
            }
            else
                sonuc = 0;

            return sonuc;
        }
About The Author
Arda Eralp
Arda Eralp
Skilled Middleware Applications Consultant with more than 9 years of experience design and implementing middleware integration & security products. Possesses the ability to build and maintain business relationships with decision makers and influencers. Leader project manager with strong communication and presentation skills.
Yorumlar

Yanıt Bırak