TC Kimlik Numarası Oluşturma ve Kontrol
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.
[sourcecode language=”plain”]
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;
}
[/sourcecode]
[sourcecode language=”plain”]
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;
}
[/sourcecode]
Yanıt Bırak