一、根据生日精确计算年龄

    public static int age(Date birthDate) {// 当前日历Calendar nowCalendar = Calendar.getInstance();// 生日大于当前日期if (nowCalendar.before(birthDate)) {throw new IllegalArgumentException("The birth date is before current time, it's unbelievable");}// 当前年月日int yearNow = nowCalendar.get(Calendar.YEAR);int monthNow = nowCalendar.get(Calendar.MONTH);int dayNow = nowCalendar.get(Calendar.DAY_OF_MONTH);// 出生日期年月日Calendar birthCalendar = Calendar.getInstance();birthCalendar.setTime(birthDate);int yearBirth = birthCalendar.get(Calendar.YEAR);int monthBirth = birthCalendar.get(Calendar.MONTH);int dayBirth = birthCalendar.get(Calendar.DAY_OF_MONTH);// 粗计算年龄int age = yearNow - yearBirth;// 当前月份小于出生月份年龄减一if (monthNow < monthBirth) { age--; }// 当前月份等于出生月份,日小于生日年龄减一else if (monthNow == monthBirth && dayNow < dayBirth) { age--; }// 返回年龄值return age;}

二、年龄不足1周岁的月龄,以分数形式表示

   /*** 年龄不足1周岁的月龄,以分数形式表示,* 分数的整数部分为实足月龄,分数部分分母为30,* 分子为不足1个月的天数。* 如 3个月15天表达为:3 15/30** @param birthDate 出生日期* @return 月龄值*/public static String mothAge(Date birthDate) {Calendar nowCalendar = Calendar.getInstance();int monthNow = nowCalendar.get(Calendar.MONTH);int dayNow = nowCalendar.get(Calendar.DAY_OF_MONTH);Calendar birthCalendar = Calendar.getInstance();birthCalendar.setTime(birthDate);int monthBirth = birthCalendar.get(Calendar.MONTH);int dayBirth = birthCalendar.get(Calendar.DAY_OF_MONTH);int month = monthNow - monthBirth;month = month > 0 ? month : (12 + month);if (dayNow >= dayBirth) {return month + StringPools.SPACE + (dayNow - dayBirth) + "/30";}return month - 1 + StringPools.SPACE + (30 - dayBirth + dayNow) + "/30";}

三、根据出生日期-当前日期计算

   /*** 根据出生日期-当前日期计算,成人写整数即可;* 儿科的,一个月内写天数,* 半岁以内写几个月几天,* 半岁以上写几个月,* 一岁以上写几岁几个月,* 12岁以上用成人的写法** @param birthDate 生日* @return 年龄* @author xiao.xl 2022/2/16 10:35*/public static String getPatientAge(Date birthDate) {// 当前日历Calendar nowCalendar = Calendar.getInstance();// 生日大于当前日期if (nowCalendar.before(birthDate)) {throw new IllegalArgumentException("The birth date is before current time, it's unbelievable");}// 当前年月日int yearNow = nowCalendar.get(Calendar.YEAR);int monthNow = nowCalendar.get(Calendar.MONTH);int dayNow = nowCalendar.get(Calendar.DAY_OF_MONTH);// 出生日期年月日Calendar birthCalendar = Calendar.getInstance();birthCalendar.setTime(birthDate);int yearBirth = birthCalendar.get(Calendar.YEAR);int monthBirth = birthCalendar.get(Calendar.MONTH);int dayBirth = birthCalendar.get(Calendar.DAY_OF_MONTH);// 粗计算年龄int age = yearNow - yearBirth;// 当前月份小于出生月份年龄减一if (monthNow < monthBirth) { age--; }// 当前月份等于出生月份,日小于生日年龄减一else if (monthNow == monthBirth && dayNow < dayBirth) { age--; }// 粗计月int month;if (monthNow < monthBirth) {month = 12 + monthNow - monthBirth;} else {month = monthNow - monthBirth;}int day;if (dayNow < dayBirth) {day = 30 + dayNow - dayBirth;month = month - 1;} else {day = dayNow - dayBirth;}if (age >= 12) {return age + "岁";} else if (age >= 1) {return age + "岁 " + month + "月";} else if (month >= 6) {return month + "月";} else if (month >= 1) {return month + "月 " + day + "天";}return day + "天";}

Java实现年龄计算相关推荐

  1. java母子年龄计算,小明12岁了,妈妈的年龄比小明大20岁,请问几年后妈妈的年龄是小明的两倍。

    package ting00001; public class Ting {public static void main(String[]args){ int year=0,monther=32,s ...

  2. java年龄计算_一个简单的java年龄计算器

    制作一个如下图年龄计算器 根据题目,我做了一个由Calendar类以及年月日各相减得到的年龄,当然正确的方法不止一个,以下为我的源代码和结果截图: package com.Date; import j ...

  3. java流式接口,JAVA流式计算

    JAVA流式计算 流的简单介绍 Java 8 中,引入了流(Stream)的概念,利用提供的Stream API,我们可以方便的操作集合数据,这种方式很类似于使用SQL对数据库的操作. 如何生成流 利 ...

  4. php年龄,PHP 年龄计算函数(精确到天)

    PHP 年龄计算函数(精确到天) 发布于 2014-12-13 17:56:49 | 144 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  5. python国防_Python+Excel数据分析实战:军事体能考核成绩评定(二)基本框架和年龄计算...

    一.基本框架 项目任务: 每个人的体能测试有单杠.仰卧起坐.30米x2蛇形跑.3000米跑四个项目,外加体型是否合格(BMI身体质量指数或者PBF体脂百分比),每项原始测试数据,通过不同项目各自规定的 ...

  6. Java基础-时间复杂度计算方式

    Java基础-时间复杂度计算方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   时间复杂度通常是衡量算法的优劣的,衡量算法的时间严格来讲是很难衡量的,由于不同的机器性能不用环境 ...

  7. java精确除法计算,四舍五入 Java问题通用解决代码

    java精确除法计算,四舍五入 Java问题通用解决代码 参考文章: (1)java精确除法计算,四舍五入 Java问题通用解决代码 (2)https://www.cnblogs.com/svenne ...

  8. PHP 年龄计算函数

    因为一个具体的项目中要用到年龄计算,根据生日计算出当前的年龄.简单写了一下,大家有需要的可以参考一下. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  9. Java判断工作日计算,计算随意2个日期内的工作日

    当前位置:我的异常网» Java Web开发 » 计算随意2个日期内的工作日 计算随意2个日期内的工作日 www.myexceptions.net  网友分享于:2013-08-17  浏览:51次 ...

最新文章

  1. 更换主版之后远程管理卡恢复操作
  2. R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray、F1、偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机)
  3. Retrofit 2.0:有史以来最大的改进
  4. LeetCode_Pascal's Triangle II_杨辉三角形II(Java实现)
  5. 优化 UI 应用启动时间的方法
  6. Linux systemd limits
  7. 网页查看js源码汉字显示乱码问题解决
  8. JAVA面向对象OOP多态→抽象类abstract、接口interface实现implement、final不变修饰符、样例代码
  9. 基础06final、权限、内部类
  10. 实现音乐播放器歌词显示效果
  11. flask中的csrf防御机制
  12. dhuacm出题网站搭建
  13. 10046追踪文件里的tim---clock walk formula(reading Cary Millsap)
  14. OSError: Unable to create file (unable to open file: name = ‘../working/best.hdf5 No such file or di
  15. 论邮政有多硬核!邮车意外滑落悬崖,快递员的行为让人动容!
  16. audio标签无法自动循环播放问题
  17. 2017年GitHub中最为流行的30个开源机器学习项目
  18. 【Mysql数据库应用】
  19. 喵呜的旅行(费用流)
  20. Xing: The Land Beyond — 从课堂到 Steam* 的卓越之旅

热门文章

  1. Arduino基础入门篇07—按键控制LED灯
  2. CCF认证考试——报数
  3. Linux中_IO,_IOR,_IOW,_IOWR宏的使用
  4. 闲鱼软件监控搜索采集hook请求签名算法-X-Sign和强制聊天
  5. 利用css 画三角形
  6. whatsapp协议分析api
  7. 关于speedtree的spt文件和stf文件
  8. 机器学习算法地图(转自SIGAI)
  9. 彩超检查报告单图片_彩超报告单怎么看
  10. html制作led,一种简易LED屏的制作方法