/// <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); }
/// <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()); }