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
T-shaped professional gathering superior technical knowledge, sales-oriented mindset, and extensive business expertise in the Information Technology industry. Over 10 years of experience in multinational technology companies, my journey spans various functions from software development to sales consultancy. Passionate about cutting-edge technologies and their transformational impacts on business and daily life.
Yorumlar

Yanıt Bırak