java计算年龄的类_java计算年龄的工具类

本文介绍了两个Java方法,getAgeByBirth用于根据输入的出生日期计算年龄,getAgeByBirth则结合出发时间计算从出生到指定时间的精确年数。通过实例展示了如何利用SimpleDateFormat和Calendar类进行日期处理。
摘要由CSDN通过智能技术生成

java计算年龄的工具类

出生日期计算年龄

public static int getAgeByBirth(String birthday) throws ParseException {

// 格式化传入的时间

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

Date parse = format.parse(birthday);

int age = 0;

try {

Calendar now = Calendar.getInstance();

now.setTime(new Date()); // 当前时间

Calendar birth = Calendar.getInstance();

birth.setTime(parse); // 传入的时间

//如果传入的时间,在当前时间的后面,返回0岁

if (birth.after(now)) {

age = 0;

} else {

age = now.get(Calendar.YEAR) - birth.get(Calendar.YEAR);

if (now.get(Calendar.DAY_OF_YEAR) > birth.get(Calendar.DAY_OF_YEAR)) {

age += 1;

}

}

return age;

} catch (Exception e) {

return 0;

}

}

计算从一个时间到另一个时间的年份(年龄)场景

public static int getAgeByBirth(String birthday, String depatureTime) throws ParseException {

// 格式化传入的时间

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

Date parse = format.parse(birthday);

Date utilDate = format.parse(depatureTime);

int age = 0;

try {

Date date = new java.sql.Date(utilDate.getTime());

Calendar now = Calendar.getInstance();

now.setTime(date); // 当前时间

Calendar birth = Calendar.getInstance();

birth.setTime(parse); // 传入的时间

//如果传入的时间,在当前时间的后面,返回0岁

if (birth.after(now)) {

age = 0;

} else {

age = now.get(Calendar.YEAR) - birth.get(Calendar.YEAR);

if (now.get(Calendar.DAY_OF_YEAR) > birth.get(Calendar.DAY_OF_YEAR)) {

age += 1;

} else if (now.get(Calendar.DAY_OF_YEAR) == birth.get(Calendar.DAY_OF_YEAR)) {

if (now.get(Calendar.DATE) > birth.get(Calendar.DATE)) {

age += 1;

}

}

}

return age;

} catch (Exception e) {

return 0;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值