Skip to content

Instantly share code, notes, and snippets.

@monoblaine
Created June 21, 2018 12:28
Show Gist options
  • Save monoblaine/9816c733724dc11a90c42f9abeea6530 to your computer and use it in GitHub Desktop.
Save monoblaine/9816c733724dc11a90c42f9abeea6530 to your computer and use it in GitHub Desktop.
T.C. kimlik numarası doğrulayıcı
using System;
using System.Linq;
using System.Text.RegularExpressions;
public static class Util {
public static Boolean TCKimlikNumarasıGeçerliMi (String tcKimlikNo) {
// Toplam 11 basamaklı olmalı, ilk basamak 0 olmamalı.
if (!Regex.IsMatch(tcKimlikNo, @"^[1-9]\d{10}$")) {
return false;
}
var tümBasamaklar = tcKimlikNo
.ToCharArray()
.Select(c => c - '0')
.ToArray();
var çiftlerinToplamı = 0;
var teklerinToplamı = tümBasamaklar[0];
for (var i = 1; i < 9; i += 2) {
çiftlerinToplamı += tümBasamaklar[i];
teklerinToplamı += tümBasamaklar[i + 1];
}
var onuncuBasamak = (teklerinToplamı * 7 - çiftlerinToplamı) % 10;
if (onuncuBasamak != tümBasamaklar[9]) {
return false;
}
var onBirinciBasamak = (çiftlerinToplamı + teklerinToplamı + onuncuBasamak) % 10;
return onBirinciBasamak == tümBasamaklar[10];
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment