PDA

View Full Version : آموزش: بررسی صحت کد ملی



mnoori
دوشنبه 21 مهر 1393, 20:47 عصر
در بسیاری از نرم افزار ها نیاز به چک کردن درستی کد ملی است تا از اشتباهات کاربر در ثبت کد ملی مورد نظر در سیستم جلوگیری شود از این جهت تصمیم گرفتم چک کردن کد ملی به زبان سی شارپ که خودم در سایت حمد سافت (http://www.hamdsoft.ir) ارائه کردم رو هم برای شما دوستان قرار بدم امید وارم که یه جایی کمکتون بکنه

public bool CheckMeliCode(string meli_code)
{
if (meli_code.Length == 10)
{
if (meli_code == "1111111111" ||
meli_code == "0000000000" ||
meli_code == "2222222222" ||
meli_code == "3333333333" ||
meli_code == "4444444444" ||
meli_code == "5555555555" ||
meli_code == "6666666666" ||
meli_code == "7777777777" ||
meli_code == "8888888888" ||
meli_code == "9999999999" ||
meli_code == "0123456789"
) {
//Response.Write("كد ملي صحيح نمي باشد");
return false;
}

int c = Convert.ToInt16(meli_code.Substring(9,1));

int n = Convert.ToInt16(meli_code.Substring(0,1)) * 10 +
Convert.ToInt16(meli_code.Substring(1,1)) * 9 +
Convert.ToInt16(meli_code.Substring(2,1)) * 8 +
Convert.ToInt16(meli_code.Substring(3,1)) * 7 +
Convert.ToInt16(meli_code.Substring(4,1)) * 6 +
Convert.ToInt16(meli_code.Substring(5,1)) * 5 +
Convert.ToInt16(meli_code.Substring(6,1)) * 4 +
Convert.ToInt16(meli_code.Substring(7,1)) * 3 +
Convert.ToInt16(meli_code.Substring(8,1)) * 2;
int r = n - (n / 11) * 11;
if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r))
{
//Response.Write(" کد ملی صحیح است");
return true;
}
else
{
//Response.Write("كد ملي صحيح نمي باشد");
return false;
}
}
else
{
//Response.Write("طول کد ملی وارد شده باید 10 کاراکتر باشد");
return false;
}
}
منبع: http://www.hamdsoft.ir/content/143