روش اعتبار سنجی کد ملی :
دهمین رقم شماره ملی را ( از سمت چپ ) به عنوان A در نظر می گیریم.
یک مقدار B در نظر می گیریم و آن را برابر با =
(اولین رقم * ۱۰) + ( دومین رقم * ۹ ) + ( سومین رقم * ۸ ) + ( چهارمین رقم * ۷ ) + ( پنجمین رقم * ۶) + ( ششمین رقم * ۵ ) + ( هفتمین رقم * ۴ ) + ( هشتمین رقم * ۳ ) + ( نهمین رقم * ۲ )
قرار می دهیم.
مقدار C را برابر با = B – (B/11)*11 قرار می دهیم.
اگر مقدار C برابر با صفر باشد و مقدار A برابر C باشد کد ملی صحیح است.
اگر مقدار C برابر با ۱ باشد و مقدار A برابر با ۱ باشد کد ملی صحیح است.
اگر مقدار C بزرگتر از ۱ باشد و مقدار A برابر با ۱۱ – C باشد کد ملی صحیح است.
از هر کدام از لینک های زیر می توانید جهت دانلود نرم افزار قابل اجرای این الگوریتم، استفاده نمایید:
یکی از مسائلی که حسابداران در هنگام صدور فاکتور رسمی و ثبت این فاکتورها در سامانه معاملات فصلی خرید و فروش مالیات مواجه می شوند، عدم صحت کد ملی ارائه شده از سوی مشتریان حقیقی می باشد. و گاه به مشتریان خود دسترسی ندارند تا کد ملی صحیح را بپرسند. نرم افزار اعتبارسنجی کد ملی کاناز کمک می کند تا در هنگام تکمیل فاکتور فروش از صحت کد ملی ارائه شده از سوی مشتری اطمینان حاصل نمایند و همان موقع نسبت به رفع و تصحیح کد ملی اقدام کنند. این نرم افزار کاربری ساده ای دارد و نیازی به نصب ندارد و در همه نسخه های ویندوز اجرا می شود.
با استفاده از این نرم افزار شما می توانید تشخیص دهید که کد ملی معتبر است یا خیر . کاربرد دیگر این نرم افزار این است که شما می توانید به صورت تصادفی کد ملی تولید کنید . این نرم افزار به صورت پرتابل بوده و با سیستم های ۳۲ و ۶۴ بیت سازگار است. برای دانلود به ادامه ی مطلب رجوع کنید
لینک چهارم فایل های dll نرم افزار
function checkMelliCode(varmellicode) { var meli_code; meli_code=varmellicode.value; if (meli_code.length == 10) { if(meli_code==’۱۱۱۱۱۱۱۱۱۱′ || meli_code==’۰۰۰۰۰۰۰۰۰۰′ || meli_code==’۲۲۲۲۲۲۲۲۲۲′ || meli_code==’۳۳۳۳۳۳۳۳۳۳′ || meli_code==’۴۴۴۴۴۴۴۴۴۴′ || meli_code==’۵۵۵۵۵۵۵۵۵۵′ || meli_code==’۶۶۶۶۶۶۶۶۶۶′ || meli_code==’۷۷۷۷۷۷۷۷۷۷′ || meli_code==’۸۸۸۸۸۸۸۸۸۸′ || meli_code==’۹۹۹۹۹۹۹۹۹۹′ ) { alert(“کد ملی صحیح نمی باشد”); objcode.focus(); return false; } c = parseInt(meli_code.charAt(9)); n = parseInt(meli_code.charAt(0))*10 + parseInt(meli_code.charAt(1))*9 + parseInt(meli_code.charAt(2))*8 + parseInt(meli_code.charAt(3))*7 + parseInt(meli_code.charAt(4))*6 + parseInt(meli_code.charAt(5))*5 + parseInt(meli_code.charAt(6))*4 + parseInt(meli_code.charAt(7))*3 + parseInt(meli_code.charAt(8))*2; r = n – parseInt(n/11)*11; if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 – r)) { return true; } else { alert(“کد ملی صحیح نمی باشد”); objcode.focus(); return true; } } else { return true;
منبع : http://itboard.ir