16Aspx.com-将15位身份证转换成18位
生活随笔
收集整理的這篇文章主要介紹了
16Aspx.com-将15位身份证转换成18位
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
16Aspx.com-將15位身份證轉(zhuǎn)換成18位 //********************************************************************************* //將15位身份證轉(zhuǎn)換成18位時(shí),首先把出生年擴(kuò)展4位,就是在原來15位號碼的第6為數(shù)字后 //增加一個19,然后在第17位數(shù)字后添加一位校驗(yàn)碼,校驗(yàn)碼是由前17位數(shù)字本體碼加權(quán)求 //和公式,通過計(jì)算模,再通過模得到對應(yīng)的校驗(yàn)碼。 //計(jì)算校驗(yàn)碼公式 //(1)17位數(shù)字本體碼加權(quán)求和公式 //S=Sum(Ai*Wi),i=0,...,16,先對前17位數(shù)字的權(quán)求和 //Ai:表示第i位置上的身份證號碼數(shù)字值 //Wi:表示第i位置上的加權(quán)因子 //Wi;7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 // //(2)計(jì)算模 //Y=mod(S,11) //(3)通過模得到對應(yīng)的校驗(yàn)碼 //Y:0 1 2 3 4 5 6 7 8 9 10 //校驗(yàn)碼:1 0 X 9 8 7 6 5 4 3 2 //***************************************************************************** /// <summary> /// 將15位的身份證號碼轉(zhuǎn)換成18位的身份證好碼 /// </summary> /// <param name="idCard">身份證號碼</param> /// <returns>返回18位身份證號碼</returns> public static string Convert15to18 (string idCard) { string code = idCard.Trim();//獲得身份證號碼 if (code.Length==15)//如果是15位則轉(zhuǎn)換 { 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 站長資源交易專業(yè)網(wǎng) 閱讀(...) 評論(...) 編輯 收藏
轉(zhuǎn)載于:https://www.cnblogs.com/amomzk/p/6961789.html
總結(jié)
以上是生活随笔為你收集整理的16Aspx.com-将15位身份证转换成18位的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【报告分享】2020年数据资产生态白皮书
- 下一篇: 飞凌嵌入式RZ/G2L处理器核心板及开发