
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; }