java用Calendar计算年龄的问题
在网上找到了一个计算年龄的java程序代码,但是计算出来的年龄竟然会出现负数,跟踪后发现cal.get(Calendar.MONTH)获取到的月份是从0开始的,代码如下:
public static int getAge(Date birthDay) throws Exception {
Calendar cal = Calendar.getInstance();
if (cal.before(birthDay)) {
throw new IllegalArgumentException(
"出生时间大于当前时间!");
}
int yearNow = cal.get(Calendar.YEAR);
int monthNow = cal.get(Calendar.MONTH) + 1;//注意此处,如果不加1的话计算结果是错误的
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) {
//monthNow==monthBirth
if (dayOfMonthNow < dayOfMonthBirth) {
age--;
} else {
//do nothing
}
} else {
//monthNow>monthBirth
age--;
}
} else {
//monthNow<monthBirth
//donothing
}
return age;
}
转载于:https://www.cnblogs.com/spark_study/archive/2010/02/24/1672543.html
java用Calendar计算年龄的问题相关推荐
- java 两日期的周数_利用 Java 中 Calendar 计算两个日期之间的天数和周数
利用 Java 中 Calendar 计算两个日期之间的天数和周数 前言 究竟什么是一个 Calendar 呢? 中文的翻译就是日历, 那我们立刻可以想到我们生活中有阳 (公) 历阴 (农) 历之分它 ...
- Java根据日期计算年龄——精确到天
最近遇到一个需求,根据孩子的出生日期,计算出孩子当前多大,要求精确到天,如"2岁8个月6天".这里做一下记录,以防以后用到. 以下是博主从简书搜到的一篇代码,奈何找不到原链接了~~ ...
- java 计算年龄 Java 根据出生日期计算年龄
1.把出生日期字符串转换为日期格式. public static Date parse(String strDate) throws ParseException {SimpleDateFormat ...
- Java根据生日计算年龄
//计算年龄private static int getAgeByBirth(Date birthday) {int age = 0;try {Calendar now = Calendar.getI ...
- java calendar日期计算_利用Java中Calendar计算两个日期之间的天数和周数
前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每 ...
- Java中Calendar 计算商品保质期、促销日期
利用Date.SimpleDateFormat和Calendar计算商品保质期.设置促销日期并计算出促销日期. package date;import java.text.ParseException ...
- java日期相差周_利用Java中Calendar计算两个日期之间的天数和周数
前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每 ...
- java根据出生日期计算年龄_Java 根据出生日期获得年纪
实现步骤: 1.获取当前时间 2.判断出生日期是否小于当前时间,如果大于,则引发一场 3.从当前时间中取出年.月.日:从出生日期中取出年.月.日,年份相减 4.然后做具体判断 示例代码如下: publ ...
- java根据生日计算年龄工具类
private static int getAgeByBirth(Date birthday) { int age = 0; try { Cal ...
- Java:出生日期转年龄
private int getAge(Date birthDay) {Calendar cal = Calendar.getInstance();//出生日期晚于当前时间,无法计算if (cal.be ...
最新文章
- 初学php时一些术语以及一些基础知识
- SimpleDateFormat处理 dd-MMM-yy类型日期
- c语言strcat_s用于调用的参数太少_为什么系统调用会消耗较多资源呢
- android smack源码分析——接收消息以及如何解析消息
- day4 Python的selenium库
- POJ1942 Paths on a Grid(组合)
- IMCASH:2019年区块链不会风平浪静,至少还有10件事值得期待
- 最新版ins安装包下载
- 2D纸娃娃系统的web演示
- FreeImage的学习总结总结(四)
- JaxWsProxyFactoryBean调用WebService实例
- FreeCAD源码分析:Assembly3模块
- thinkphp5 TP5 两表关联查询
- java文件输入流FileInputStream
- 2020 2月 月末总结
- CAD二次开发--ZOOM自定义缩放到视口区域,解决SelectCrossingWindow等方法对视口外实体不起作用的问题
- RO、RW和ZI的区别
- 如何将WORD转成SWF
- html中如何写if判断,HTML中的if判断用法
- 3306π武汉站嘉宾专访-爱可生技术服务总监洪斌