C# 通过生日计算年龄,精确到天

      //搞一个静态方法  
      public static class Extension
      {
          public static int GetAgeByBirthdate(this DateTime birthdate)
          {
              DateTime now = DateTime.Now;
              int age = now.Year - birthdate.Year;
              if (now.Month < birthdate.Month || (now.Month == birthdate.Month && now.Day < birthdate.Day))
              {
                  age--;
             }
             return age < 0 ? 0 : age;
         }
      }

  

       //再附一个身份证号取年龄的方法
        public static DateTime IdCardtoDate(this string cardno)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(cardno) || cardno.Length != 18)
                {
                    return new DateTime(2099, 1, 1);
                }
                else
                {
                    int year = Convert.ToInt32(cardno.Substring(6, 4));
                    int month = Convert.ToInt32(cardno.Substring(10, 2));
                    int day = Convert.ToInt32(cardno.Substring(12, 2));
                    return new DateTime(year, month, day);
                }
            }
            catch
            {
                return new DateTime(2099, 1, 1);
            }
        }

  

        //调用就简单一些了
        string idCardNumber = "11122219991201XXXX";
        int age = idCardNumber.IdCardtoDate().GetAgeByBirthdate();

  

posted @ 2020-03-06 15:38  钻葛格  阅读(2181)  评论(0)    收藏  举报