源码站长资源交易专业网-商业源码下载,VIP源码,程序交易,毕业设计交易,站长交易|- 16aspx.com

站长交易,站长资源交易,源码交易,程序交易,毕业设计交易,VIP源码,商业源码,商业网站源码,ASP.NET源码,C#源码,源码高速下载,素材交易,教程下载,教程交易,素材下载

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
//*********************************************************************************   
  //将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  站长资源交易专业网  阅读(695)  评论(0编辑  收藏  举报