<html>
<body>
<script language="javascript">
var date = new Date(); //获得一个日期的实例
var year = date.getYear(); //获得年
var month = date.getMonth(); //获得月
var day = date.getDate(); //获得日
/**PS:以上三项为日期运算的最基本参数,地球认都知道……
*下面为缓存的日期
*/
var t_yy = 0;
var t_mm = 0;
var t_dd = 0;
/**
* 以下为生日的begin value,请替换为text中数值即可,建议用getElementById等方式获取……
*/
var b_yy;
var b_mm ;
var b_dd;
/**
* 进行显示and处理用函数,PS:实际运算时请添加日期格式验证
*/
var geniusCPshow=function(name,begin_yy,begin_mm,begin_dd){
b_yy=begin_yy;
b_mm=begin_mm;
b_dd=begin_dd;
//将当前年和出生年进行minus操作
t_yy = year - b_yy - 1;
//当月份的增值>begin的生日日期时
if ( month + 1 > b_mm)
{
//缓存的月份为月份 - begin month
t_mm = month - b_mm ;
//累加缓存年
t_yy++;
}
else //做例外处理,用一年的month - begin month + month
t_mm = 12 - b_mm + month;
//若当前天大于begin day
if (day > b_dd)
{ t_dd = day - b_dd;
t_mm++;
}
else //作例外处理
t_dd = dayInMonth(month, year) - b_dd + day;
//以下类似
if (t_dd > dayInMonth(month, year)-1)
{ t_dd = 0;
t_mm++;
}
//当月份高于临界时,归零并累加年
if (t_mm > 11)
{ t_mm = 0;
t_yy++;
}
document.write(name);
if (t_yy > 0)document.write(" " + t_yy + "岁,零");
if (t_mm > 0)document.write(t_mm + "个月");
if (t_dd > 0)document.write("又" + t_dd + "天") ;
}
/**
*月份天数换算用函数
*/
var arrayOfDayInMonths=function(isLeapYear) {
this[0] = 31;
this[1] = 28;
if (isLeapYear)
this[1] = 29;
this[2] = 31;
this[3] = 30;
this[4] = 31;
this[5] = 30;
this[6] = 31;
this[7] = 31;
this[8] = 30;
this[9] = 31;
this[10] = 30;
this[11] = 31;
}
var dayInMonth=function(month, year){
//持续了N年的古董算法,不解释了……
var isLeapYear = ((( year % 4 == 0) && (year % 100 != 0)) || (year %400 == 0));
var monthdays = new arrayOfDayInMonths(isLeapYear);
return monthdays[month];
}
//下为某天才的输出……
this.geniusCPshow("鹏凌三千大人",1981,10,18);
</script>
</body>
</html>
