关于根据出生日期计算年龄的问题(js,java)

js中计算年龄
/**
* 将生日转换成年龄
*/
function birthDayToAge(){
var aDate=new Date();
var thisYear = aDate.getFullYear();
var thisMonth = aDate.getMonth()+1;
var thisDay = aDate.getDate();
var currentDate = thisYear+"-"+thisMonth+"-"+thisDay;
var oTable = document.getElementById('familyMember');
var message = $("#message").html();
if(message != null && message != "" ){
return null;
}
for(i=1;i<oTable.rows.length;i++){
var cell = oTable.rows[i].cells[3].innerHTML;
if(cell!="" && cell != null){
age = daysBetween(currentDate,cell.trim());
oTable.rows[i].cells[3].innerHTML = age;
}else{
oTable.rows[i].cells[3].innerHTML = "";
}
}
}

/** 计算两个日期间的年龄 */
function daysBetween(DateOne,DateTwo){
var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-'));
var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1);
var OneYear = DateOne.substring(0,DateOne.indexOf ('-'));

var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'));
var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1);
var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));

var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000/365);
var age = Math.abs(cha)+1+"";
return age.split(".")[0];
}


java中计算年龄
/** 计算年龄 */
public String 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)+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 {
//monthNow>monthBirth
age--;
}
}

return age +"";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值