16Aspx.com-将15位身份证转换成18位
生活随笔
收集整理的這篇文章主要介紹了
16Aspx.com-将15位身份证转换成18位
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
16Aspx.com-將15位身份證轉換成18位 //********************************************************************************* //將15位身份證轉換成18位時,首先把出生年擴展4位,就是在原來15位號碼的第6為數字后 //增加一個19,然后在第17位數字后添加一位校驗碼,校驗碼是由前17位數字本體碼加權求 //和公式,通過計算模,再通過模得到對應的校驗碼。 //計算校驗碼公式 //(1)17位數字本體碼加權求和公式 //S=Sum(Ai*Wi),i=0,...,16,先對前17位數字的權求和 //Ai:表示第i位置上的身份證號碼數字值 //Wi:表示第i位置上的加權因子 //Wi;7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 // //(2)計算模 //Y=mod(S,11) //(3)通過模得到對應的校驗碼 //Y:0 1 2 3 4 5 6 7 8 9 10 //校驗碼:1 0 X 9 8 7 6 5 4 3 2 //***************************************************************************** /// <summary> /// 將15位的身份證號碼轉換成18位的身份證好碼 /// </summary> /// <param name="idCard">身份證號碼</param> /// <returns>返回18位身份證號碼</returns> public static string Convert15to18 (string idCard) { string code = idCard.Trim();//獲得身份證號碼 if (code.Length==15)//如果是15位則轉換 { char[] strJY ={ ''1'', ''0'', ''X'', ''9'', ''8'', ''7'', ''6'', ''5'', ''4'', ''3'', ''2'' }; int[] intJQ ={ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 }; string strTemp; int intTemp = 0; strTemp = code.Substring(0, 6) + "19" + code.Substring(6); for (int i = 0; i <= strTemp.Length - 1; i++) { intTemp = intTemp + int.Parse(strTemp.Substring(i, 1)) * intJQ[i]; } intTemp = intTemp % 11; return strTemp + strJY[intTemp]; } else { if (code.Length == 18)//如果是18位直接返回 { return code; } return string.Empty;//如果即不是15位也不是18位則返回空 } } /// <summary> /// 獲得出身年月日 /// </summary> /// <param name="idCard">身份證號碼</param> /// <returns>返回出身年月日</returns> public static string GetBirth(string idCard) { string code = Convert15to18(idCard);//獲得身份證號碼 if (code != string.Empty) { string year = code.Substring(6, 4);//獲得身份證號碼里面的年 string month = code.Substring(10, 2);//獲得身份證號碼里面的月 string day = code.Substring(12, 2);//獲得身份證號碼里面的日 return year + "年" + month + "月" + day + "日"; } else { return string.Empty; } }
posted on 2017-06-08 11:09 站長資源交易專業網 閱讀(...) 評論(...) 編輯 收藏
轉載于:https://www.cnblogs.com/amomzk/p/6961789.html
總結
以上是生活随笔為你收集整理的16Aspx.com-将15位身份证转换成18位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【报告分享】2020年数据资产生态白皮书
- 下一篇: 飞凌嵌入式RZ/G2L处理器核心板及开发