zoukankan      html  css  js  c++  java
  • 通过出生日期获取年龄的方法--Java

    项目中需要根据用户填写的出生日期获得用户的年龄,一般直接写成一个方法,然后调用方法进行计算比较省事。

    下面介绍一种根据出生日期计算年龄的方法:

    package com.hyhl.util;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    public class AgeUtil {
    
         public static  Date parse(String strDate) throws ParseException {  
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
                return sdf.parse(strDate);  
            }  
           //由出生日期获得年龄  
            public static  int getAge(Date birthDay) throws Exception {  
                Calendar cal = Calendar.getInstance();  
                if (cal.before(birthDay)) {  
                    throw new IllegalArgumentException(  
                            "The birthDay is before Now.It's unbelievable!");  
                }  
                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;  
            }  
            
            public static void main(String args[]) { 
                 try {
                    int  age = getAge(parse("2991-10-21"));
                    System.out.println("age=="+age);
                } catch (ParseException e) {
                    e.printStackTrace();
                } catch (Exception e) {
                    e.printStackTrace();
                } 
      
                  
            }
    }

    直接方法即可

    package com.hyhl.util;
    import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;
    public class AgeUtil {
    public static  Date parse(String strDate) throws ParseException {          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");          return sdf.parse(strDate);      }     //由出生日期获得年龄      public static  int getAge(Date birthDay) throws Exception {          Calendar cal = Calendar.getInstance();          if (cal.before(birthDay)) {              throw new IllegalArgumentException(                      "The birthDay is before Now.It's unbelievable!");          }          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;      }          public static void main(String args[]) {      try {int  age = getAge(parse("2991-10-21"));System.out.println("age=="+age);} catch (ParseException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}             }}

  • 相关阅读:
    算法
    UVA 10318 Security Panel(DFS剪枝 + 状压 + 思维)题解
    CodeForces 509C Sums of Digits(贪心乱搞)题解
    UVA 10382 Watering Grass(区间覆盖,贪心)题解
    CodeForces 430A Points and Segments (easy)(构造)题解
    CodeForces 459C Pashmak and Buses(构造)题解
    newcoder F石头剪刀布(DFS + 思维)题解
    newcoder H肥猪(单调队列 / 线段树)题解
    UVALive 7501 Business Cycle(二分)题解
    UVALive 7503 Change(乱搞)题解
  • 原文地址:https://www.cnblogs.com/wyf-love-dch/p/7483094.html
Copyright © 2011-2022 走看看