zoukankan      html  css  js  c++  java
  • java根据生日精确计算年龄

     1 package getAge;
     2 import java.text.SimpleDateFormat;
     3 import java.util.Calendar;
     4 import java.util.Date;
     5 
     6 /**
     7  * 根据用户生日精确计算年龄
     8  * 用Calender对象取得当前日期对象--从对象中分别取出年月日
     9  * @author Administrator
    10  *
    11  */
    12 public class getAgeByBirthday{
    13     public static int getAgeByBirth(Date birthday){        
    14         //Calendar:日历
    15         /*从Calendar对象中或得一个Date对象*/
    16         Calendar cal = Calendar.getInstance();
    17         /*把出生日期放入Calendar类型的bir对象中,进行Calendar和Date类型进行转换*/
    18         Calendar bir = Calendar.getInstance();
    19         bir.setTime(birthday);
    20         /*如果生日大于当前日期,则抛出异常:出生日期不能大于当前日期*/
    21         if(cal.before(birthday)){
    22             throw new IllegalArgumentException("The birthday is before Now,It's unbelievable");
    23         }
    24         /*取出当前年月日*/
    25         int yearNow = cal.get(Calendar.YEAR);
    26         int monthNow = cal.get(Calendar.MONTH);
    27         int dayNow = cal.get(Calendar.DAY_OF_MONTH);
    28         /*取出出生年月日*/
    29         int yearBirth = bir.get(Calendar.YEAR);
    30         int monthBirth = bir.get(Calendar.MONTH);
    31         int dayBirth = bir.get(Calendar.DAY_OF_MONTH);
    32         /*大概年龄是当前年减去出生年*/
    33         int age = yearNow - yearBirth;
    34         /*如果出当前月小与出生月,或者当前月等于出生月但是当前日小于出生日,那么年龄age就减一岁*/
    35         if(monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)){
    36             age--;
    37         }
    38         return age;
    39     }
    40     /*main方法测试*/
    41     public static void main(String[] args){
    42         SimpleDateFormat sft = new SimpleDateFormat("yyyy-MM-dd");
    43         String sftBirth = "1980-4-25";
    44         Date date = null;
    45         try{
    46             date = sft.parse(sftBirth);
    47         }catch(Exception e){
    48             e.printStackTrace();
    49         }
    50         int age = getAgeByBirthday.getAgeByBirth(date);
    51         System.out.print("年龄=" + age + "岁");
    52     }
    53 }
  • 相关阅读:
    redis.conf配置详细解析
    laravel框架的注入
    10 个免费高清图片素材下载网站。#免版权# #设计# #图片处理#
    本地Git连接GitLab(服务器)远程仓库
    基于Docker的Mysql主从复制
    解决git本地代码推服务器每次都要输入用户名和密码的问题
    Laravel上传文件(单文件,多文件)
    php的精度计算问题(bcadd和bcsub)
    POJ 1573 Robot Motion(简单模拟)
    POJ 2996 Help Me with the Game(模拟)
  • 原文地址:https://www.cnblogs.com/j120zjb/p/8968381.html
Copyright © 2011-2022 走看看