解析身份证

/// <summary>
/// 解析身份证
/// </summary>
/// <param name="IDCard"></param>
/// <returns>list: 0.BIRTHDAY, 1.AGE, 2.AGEUNIT, 3.SEX</returns>
public static List<string> GetBirthdayAgeSexFromIDCard(string IDCard)
{
List<string> strList = new List<string>();

try
{
if (!string.IsNullOrEmpty(IDCard))
{
string BIRTHDAY = string.Empty;
string SEX = string.Empty;

if (IDCard.Length == 18)
{
if (FrameWorkUtility.CheckIDCardLong(IDCard))
{
BIRTHDAY = IDCard.Substring(6, 4) + "-" + IDCard.Substring(10, 2) + "-" + IDCard.Substring(12, 2);
SEX = IDCard.Substring(14, 3);
}
else
{
MessageBox.Show("身份证号有误,请重新输入", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return null;
}
}
else if (IDCard.Length == 15)
{
if (FrameWorkUtility.CheckIDCardShort(IDCard))
{
BIRTHDAY = "19" + IDCard.Substring(6, 2) + "-" + IDCard.Substring(8, 2) + "-" + IDCard.Substring(10, 2);
SEX = IDCard.Substring(12, 3);
}
else
{
MessageBox.Show("身份证号有误,请重新输入", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return null;
}
}
else
{
MessageBox.Show("请输入18位身份证号", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return null;
}

if (BIRTHDAY != null)
{

strList.Add(BIRTHDAY);
List<string> strList2 = GetAgeFromBirthday(ConvertUtility.ObjectToDateTime(BIRTHDAY));
if (strList2.Count > 1)
{
strList.Add(strList2[0]);
strList.Add(strList2[1]);
}
}
if (SEX != null)
{
if (int.Parse(SEX) % 2 == 0)
{
strList.Add("2");
}
else if (int.Parse(SEX) % 2 != 0)
{
strList.Add("1");
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

return strList;
}

原文地址:https://www.cnblogs.com/mapstar/p/10783808.html