Java实现年龄计算
一、根据生日精确计算年龄
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实现年龄计算相关推荐
- java母子年龄计算,小明12岁了,妈妈的年龄比小明大20岁,请问几年后妈妈的年龄是小明的两倍。
package ting00001; public class Ting {public static void main(String[]args){ int year=0,monther=32,s ...
- java年龄计算_一个简单的java年龄计算器
制作一个如下图年龄计算器 根据题目,我做了一个由Calendar类以及年月日各相减得到的年龄,当然正确的方法不止一个,以下为我的源代码和结果截图: package com.Date; import j ...
- java流式接口,JAVA流式计算
JAVA流式计算 流的简单介绍 Java 8 中,引入了流(Stream)的概念,利用提供的Stream API,我们可以方便的操作集合数据,这种方式很类似于使用SQL对数据库的操作. 如何生成流 利 ...
- php年龄,PHP 年龄计算函数(精确到天)
PHP 年龄计算函数(精确到天) 发布于 2014-12-13 17:56:49 | 144 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...
- python国防_Python+Excel数据分析实战:军事体能考核成绩评定(二)基本框架和年龄计算...
一.基本框架 项目任务: 每个人的体能测试有单杠.仰卧起坐.30米x2蛇形跑.3000米跑四个项目,外加体型是否合格(BMI身体质量指数或者PBF体脂百分比),每项原始测试数据,通过不同项目各自规定的 ...
- Java基础-时间复杂度计算方式
Java基础-时间复杂度计算方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 时间复杂度通常是衡量算法的优劣的,衡量算法的时间严格来讲是很难衡量的,由于不同的机器性能不用环境 ...
- java精确除法计算,四舍五入 Java问题通用解决代码
java精确除法计算,四舍五入 Java问题通用解决代码 参考文章: (1)java精确除法计算,四舍五入 Java问题通用解决代码 (2)https://www.cnblogs.com/svenne ...
- PHP 年龄计算函数
因为一个具体的项目中要用到年龄计算,根据生日计算出当前的年龄.简单写了一下,大家有需要的可以参考一下. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
- Java判断工作日计算,计算随意2个日期内的工作日
当前位置:我的异常网» Java Web开发 » 计算随意2个日期内的工作日 计算随意2个日期内的工作日 www.myexceptions.net 网友分享于:2013-08-17 浏览:51次 ...
最新文章
- 更换主版之后远程管理卡恢复操作
- R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray、F1、偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机)
- Retrofit 2.0:有史以来最大的改进
- LeetCode_Pascal's Triangle II_杨辉三角形II(Java实现)
- 优化 UI 应用启动时间的方法
- Linux systemd limits
- 网页查看js源码汉字显示乱码问题解决
- JAVA面向对象OOP多态→抽象类abstract、接口interface实现implement、final不变修饰符、样例代码
- 基础06final、权限、内部类
- 实现音乐播放器歌词显示效果
- flask中的csrf防御机制
- dhuacm出题网站搭建
- 10046追踪文件里的tim---clock walk formula(reading Cary Millsap)
- OSError: Unable to create file (unable to open file: name = ‘../working/best.hdf5 No such file or di
- 论邮政有多硬核!邮车意外滑落悬崖,快递员的行为让人动容!
- audio标签无法自动循环播放问题
- 2017年GitHub中最为流行的30个开源机器学习项目
- 【Mysql数据库应用】
- 喵呜的旅行(费用流)
- Xing: The Land Beyond — 从课堂到 Steam* 的卓越之旅