public static int GetAgeByIdCard(string idCard)
{
int age = -1;
if (!string.IsNullOrWhiteSpace(idCard))
{
var subStr = string.Empty;
if (idCard.Length == 18)
{
subStr = idCard.Substring(6, 8).Insert(4, "-").Insert(7, "-");
}
else if (idCard.Length == 15)
{
subStr = ("19" + idCard.Substring(6, 6)).Insert(4, "-").Insert(7, "-");
}
DateTime ageTime = Convert.ToDateTime(subStr);
DateTime now = DateTime.Now;
age = now.Year - ageTime.Year;
if (now.Month < ageTime.Month || (now.Month == ageTime.Month && now.Day < ageTime.Day))
{
age--;
}
}
return age < 0 ? 0 : age;
}