zoukankan      html  css  js  c++  java
  • java计算年龄

    精确到天计算年龄

     public static int getAgeByCardId(String card) throws Exception {
            Integer len = card.length();
            if (len == CHINA_ID_MIN_LENGTH) {
                card = conver15CardTo18(card);
            }
            String birthDate = card.substring(6, 14);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");  
            Date date = sdf.parse(birthDate);  
            return calcAge(date);
        }
    
    
    
     /**
         * 由出生日期获得年龄  精确到天
         * @param birthDay
         * @return
         * @throws Exception
         */
        public static int calcAge(Date birthDay) throws Exception {  
            Calendar cal = Calendar.getInstance();  
            if (cal.before(birthDay)) {  
                throw new IllegalArgumentException("出生日期不能晚于当前日期");  
            }  
            int yearNow = cal.get(Calendar.YEAR);  
            int monthNow = cal.get(Calendar.MONTH);  
            int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);  
            cal.setTime(birthDay);  
      
            int yearBirth = cal.get(Calendar.YEAR);  
            int monthBirth = cal.get(Calendar.MONTH);  
            int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);  
      
            int age = yearNow - yearBirth;  
      
            if (monthNow <= monthBirth) {  
                if (monthNow == monthBirth) {  
                    if (dayOfMonthNow < dayOfMonthBirth) age--;  
                }else{  
                    age--;  
                }  
            }  
            return age;  
        }

    按年计算年龄

     /**
         * 根据身份编号获取年龄
         * 
         * @param idCard
         *            身份编号
         * @return 年龄
         */
        public static int getAgeByIdCard(String idCard) {
            int iAge = 0;
            if (idCard.length() == CHINA_ID_MIN_LENGTH) {
                idCard = conver15CardTo18(idCard);
            }
            String year = idCard.substring(6, 10);
            Calendar cal = Calendar.getInstance();
            int iCurrYear = cal.get(Calendar.YEAR);
            iAge = iCurrYear - Integer.valueOf(year);
            return iAge;
        }
  • 相关阅读:
    java读取ANSI编码或者UTF8编码文件乱码问题解决
    java集合框架(Framework)的性能
    堆排序程序
    Python监控Apache,MySQL
    堆排序和快速排序性能比较
    资源管理命令
    Python监控Apache,MySQL
    资源管理命令
    javap反编译
    浏览器的用户代理字符串
  • 原文地址:https://www.cnblogs.com/shihaiming/p/7592057.html
Copyright © 2011-2022 走看看