• 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;
        }
  • 相关阅读:
    Python记录-python执行shell命令
    Linux记录-centos升级python3
    Linux记录-mysql参数优化
    Linux记录-史上最全的MySQL高性能优化实战总结(转载)
    linux记录-docker配置mysql
    Linux记录-SVN+Jenkins+jdk+maven自动化集成部署
    Linux记录-Nginx+Tomcat负载均衡配置
    linux记录-安装elk记录(参考博文)
    linux记录-安装zabbix监控系统
    Zookeeper简单介绍
  • 原文地址:https://www.cnblogs.com/shihaiming/p/7592057.html
Copyright © 2020-2023  润新知