/// <summary>
        /// 获取出生年月日
        /// </summary>
        /// <param name="idNumber">身份证号模型</param>
        /// <returns>出生年月日</returns>
        public static DateTime CF_GetBirthday(ModIDNumber idNumber)
        {
            DateTime birthday = new DateTime(0001, 1, 1);

            if (idNumber.CF_GetIDNumberType() == EIDNumberType.Digit15)
            {
                int year  = Convert.ToInt32(idNumber.IDNumber.Substring(6, 2));
                int month = Convert.ToInt32(idNumber.IDNumber.Substring(8, 2));
                int day   = Convert.ToInt32(idNumber.IDNumber.Substring(10, 2));

                year = Convert.ToInt32(year < 20 ? "20" + year : "19" + year);

                birthday = new DateTime(year, month, day);
            }
            else if (idNumber.CF_GetIDNumberType() == EIDNumberType.Digit18)
            {
                int year  = Convert.ToInt32(idNumber.IDNumber.Substring(6, 4));
                int month = Convert.ToInt32(idNumber.IDNumber.Substring(10, 2));
                int day   = Convert.ToInt32(idNumber.IDNumber.Substring(12, 2));

                birthday = new DateTime(year, month, day);
            }

            return(birthday);
        }
        /// <summary>
        /// 获取验证码
        /// </summary>
        /// <param name="idNumber">身份证号模型</param>
        /// <returns>验证码(0-9|X|E-Error)</returns>
        public static char CF_GetSpecialCode(ModIDNumber idNumber)
        {
            string strIDNumber = "";

            if (idNumber.CF_GetIDNumberType(false) == EIDNumberType.Digit15)
            {
                int year = Convert.ToInt32(idNumber.IDNumber.Substring(6, 2));
                year = Convert.ToInt32(year < 20 ? "20" + year : "19" + year);

                strIDNumber = idNumber.IDNumber.Substring(0, 6) + year + idNumber.IDNumber.Substring(8, 7);
            }
            else if (idNumber.CF_GetIDNumberType(false) == EIDNumberType.Digit18)
            {
                strIDNumber = idNumber.IDNumber.Substring(0, 17);
            }

            char number = 'E';

            if (!string.IsNullOrEmpty(strIDNumber))
            {
                string[] arrVarifyCode = ("1,0,X,9,8,7,6,5,4,3,2").Split(',');
                string[] Wi            = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(',');
                char[]   Ai            = strIDNumber.ToCharArray();

                int sum = 0;
                for (int i = 0; i < 17; i++)
                {
                    sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString());
                }

                number = arrVarifyCode[sum % 11][0];
            }

            return(number);
        }
Exemple #3
0
        /// <summary>
        /// 获取性别
        /// </summary>
        /// <param name="idNumber">身份证号模型</param>
        /// <returns>性别</returns>
        public static EGender CF_GetGender(this ModIDNumber idNumber)
        {
            EGender gender = EGender.Error;

            if (idNumber.CF_GetIDNumberType() == EIDNumberType.Digit15)
            {
                gender = Convert.ToInt32(idNumber.IDNumber.Substring(14, 1)) % 2 == 1 ? EGender.Male : EGender.Female;
            }
            else if (idNumber.CF_GetIDNumberType() == EIDNumberType.Digit18)
            {
                gender = Convert.ToInt32(idNumber.IDNumber.Substring(16, 1)) % 2 == 1 ? EGender.Male : EGender.Female;
            }

            return(gender);
        }
 /// <summary>
 /// 获取身份证号类型
 /// </summary>
 /// <param name="idNumber">身份证号模型</param>
 /// <returns>身份证号类型</returns>
 public static EIDNumberType CF_GetIDNumberType(ModIDNumber idNumber)
 {
     return(idNumber.CF_GetIDNumberType());
 }