计算周岁,有了这个就可以知道自己到底多大了,我23,哈哈
最近的业务就是订票,于是乎就有了‘成人’->‘儿童’->‘婴儿’的分类,所以就必须得计算周岁了呀。
一开始我想的超级复杂,要计算 (出生日期->现在) 所差的年月日,还要考虑到闰年平年!!!想想都抓狂。。。还好百度够强大,在csdn遇到了大神这里的一段代码,果然厉害。然后我加了一些注释,进行了测试,简单粗暴,其实很简单的道理,可是我却想不到,真是惭愧。
直接附代码啦,有基础就能看懂。
function fullYear(str) //str的格式:2013-02-16
{
var b = str.split('-'); // b = ['2013','02','16']
if(b==null){return false};
var birth= new Date(b[0],b[1]-1,b[2]); // Sat Feb 16 2013 00:00:00 GMT+0800 (中国标准时间)
if(birth.getFullYear()==b[0]&&(birth.getMonth()+1)==b[1]&&birth.getDate()==b[2])
{
var current = new Date();
var age = current.getFullYear()-b[0];//相差的年
if(current.getMonth()>birth.getMonth()){ //如果当前所在月份>出生当月,那年龄就是整年之差
return age;
}
if(current.getMonth()==birth.getMonth()){ //如果当前所在月份=出生当月,判断日
if(current.getDate()>=birth.getDate()){ // 如果当前所在的日>出生日 age=整年之差
return age;
}else{ //否则 ,还没过生日,周岁-1
return age-1;
}
}
if(current.getMonth()<birth.getMonth()){ //当然 如果当前月<出生月,生日还没到,所以周岁-1
return age-1;
}
}
return("输入的日期格式错误!");
}
console.log('周岁:'+fullYear("2013-02-16"));
console.log('周岁:'+fullYear("1993-12-31"));
代码十分清晰,废话不多说,我要继续项目了,又有新任务啦~