概要
マイナンバーは12桁の数字で構成されています。
入力された番号が正しいか計算できる仕組みが備わっています。
それがチェックデジットというもので、末尾1桁の数字のことです。プログラムでチェックできるようにコードを組んでみました。
使い方
引数にマイナンバーを文字列で渡します。int型で引数渡してもいいのですが、桁数をチェックするため文字列で渡しています。
例)bool mynumber_check = myNumberCheck(“123456789012”);
//この場合、falseが返されます
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
internal bool myNumberCheck(string targetNumber) { if(targetNumber.Length != 12) { return false; } bool b_hit = false; int[] i_calcNum = { 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2 }; int i_sum = 0; int i_remainder = -1; for(int i = 0; i <= 10; i++) { i_sum += int.Parse(targetNumber[i].ToString()) * i_calcNum[i]; } i_remainder = i_sum % 11; i_remainder = i_remainder <= 1 ? 0 : 11 - i_remainder; if (int.Parse(targetNumber[11].ToString()) == i_remainder) { b_hit = true; } return b_hit; } |