private int getAge(Date birthDay) {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;}

https://blog.csdn.net/qq_44621483/article/details/108573019

程序记录:

  通过输入出生日期字符串,返回年龄

源码展示:

public static int getAgeForBirthday(String birthday){//定义一个日期格式yyyy-MM-dd,将String转为DateSimpleDateFormat simp = new SimpleDateFormat("yyyy-MM-dd");Date date = null;try {date = simp.parse(birthday);} catch (ParseException e) {e.printStackTrace();}//判断该生日是否在当前日期之前,设置一个初始值,表示输入日期错误if(date.after(new Date())){return -1;}//获取当前日历对象中的年、月、日Calendar nowc = Calendar.getInstance();int nowYear = nowc.get(Calendar.YEAR);int nowMonth = nowc.get(Calendar.MONTH);int nowDay = nowc.get(Calendar.DAY_OF_MONTH);//将Date转为Calendar日历对象,获取生日的年、月、日nowc.setTime(date);//通过年月日计算该对象的年纪//先通过Year计算初步年龄int year = nowYear-nowc.get(Calendar.YEAR);//通过Month和Day判断是否过生日if(nowc.get(Calendar.MONTH)>nowMonth){return year-1;}if (nowc.get(Calendar.DAY_OF_MONTH)>nowDay){return year-1;}return year;}

思路

  由于String类型不能直接获取时间信息,所以将其转为Date类型,但获取Date类方法获取的只有毫秒为单位的时间,直接与当前时间计算的到的是毫秒值,由于还要考虑当前时间到出生日期间的闰年问题和月份天数不同等问题,还需要将Date类型转为Calendar类型,Calendar类型可直接获得当前日期和指定日期的年月日,先通过获取的年获取大概的年龄,再通过月和日判断当前日期是否已经过了生日由此对大概年龄减1。

 

 

 

Java 根据出生日期计算年龄

https://www.cnblogs.com/fuchuanzhipan1209/p/9596614.html

 

Java 根据出生日期计算年龄

1.把出生日期字符串转换为日期格式。

1

2

3

4

public static  Date parse(String strDate) throws ParseException {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        return sdf.parse(strDate);

    }

2.计算年龄

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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--;//当前月份在生日之前,年龄减一

1

} } return age; }

3.执行方法

1

2

3

4

5

6

7

8

public static void main(String[] args) {

        try {

          int  age = getAge(parse("1990-09-27"));           //由出生日期获得年龄***

          System.out.println("age:"+age);

        catch (Exception e) {

            e.printStackTrace();

        }

    }

  

 

分类: java工具

 

 

 

 

 

 

 

 

 

 

 

Java:出生日期转年龄相关推荐

  1. java 通过出生日期算年龄

    package com.cyjlgb.services.backend.utils; import java.util.Calendar; import java.util.Date; public ...

  2. java 计算年龄 Java 根据出生日期计算年龄

    1.把出生日期字符串转换为日期格式. public static Date parse(String strDate) throws ParseException {SimpleDateFormat ...

  3. 【Java 工具类】通过出生日期获取年龄

    通过出生日期获取年龄 /*** @Description: 异常生日默认返回 0* @Param birthDay 出生日期* @Return int*/ public static int getA ...

  4. java根据生日精确计算年龄_java根据出生日期计算年龄(精确到天)

    @根据出生日期计算年龄(精确到天) 代码块 public class CountAgeUtil { public static String countAge(String from){ String ...

  5. sql server 根据身份证号计算出生日期和年龄的存储过程

    我这边有一个业务,需要客户填写身份证号,自动计算他的出生日期和年龄 在sql中,具体的存储过程实现是这样的: /******************************************** ...

  6. js中如何通过身份证号计算出生日期和年龄

    在html中有如下标签 身份证号:<input type="text" id="Gra_IDCard" onChange="IDCardChan ...

  7. MySQL根据出生日期查询年龄,以及对年龄进行分组统计

    表stu数据如下 1. 根据出生日期查询年龄 SELECT TIMESTAMPDIFF(YEAR,DATE(birthdate),CURDATE()) AS age FROM stu; 返回结果: 函 ...

  8. 出生日期与年龄python_python根据出生日期返回年龄的方法

    本文实例讲述了python根据出生日期返回年龄的方法.分享给大家供大家参考.具体实现方法如下: def CalculateAge(self, Date): '''Calculates the age ...

  9. js 根据身份证获取出生日期与年龄

    js 根据身份证获取出生日期与年龄 //获取出生日期getBirthdayFromIdCard(idCard) {var birthday = "";if (idCard != n ...

最新文章

  1. 使用 Spring Cloud 实现微服务系统
  2. hdu 3652 B-number 数位dp
  3. LeetCode 273. 整数转换英文表示
  4. css 定位以及文字超长省略
  5. Python 函数参数传递的困惑
  6. 实例讲解统计学基础知识(1):统计学基础概念
  7. 【bat命令-在for循环中赋值给局部变量后再输出变量时提示“ECHO 处于关闭状态。”或者“ECHO 处于打开状态。”】
  8. 「经济理财」 简七理财之小白理财入门篇9堂课
  9. USB 打印机 模拟 LPT 接口
  10. MATLAB textscan之模式匹配用法
  11. windows系统配置静态路由
  12. Oracle学习3:dual详解
  13. 运动耳机哪种比较好用、最好用的运动耳机
  14. 1139C C. Edgy Trees
  15. 电话骚扰 【响完一声开始没有任何声音】
  16. Python全栈工程师(30:html)
  17. 几种常用的加解密的方法
  18. 河北师范大学的计算机专业好吗,河北师范大学计算机科学与技术怎么样
  19. python分析每月销售数据_时间序列ARIMA模型详解:python实现店铺一周销售量预测...
  20. 群晖摇身一变,手机备份保险箱闪亮登场!

热门文章

  1. 【ZJOI2015】幻想乡战略游戏【点分树】【带权重心】
  2. Sum of Log(2020上海C)
  3. 【每日一题】7月16日题目精讲—点权和
  4. 11.17 模拟:总结
  5. 剪纸游戏(博弈论)(SG函数)
  6. 2021牛客OI赛前集训营-树数树【树上启发式合并,堆】
  7. P2580-于是他错误的点名开始了【Trie,字符串】
  8. 【jzoj】2018.2.5NOIP普及组——C组模拟赛
  9. codeforces1453 E. Dog Snacks
  10. 【数论】能量采集(P1447)