1

到目前为止,我能想到的唯一数学方法是:

var age = 18
var today = new Date();

var myDate = new Date();
myDate.setFullYear(2013,3,13); /* My birthday is april 13th */

var y = (today - myDate);

var days = ( y / (1000*60*60*24));

if(days >= 360){
    var age = age +1;
}

if(days >= 720){
    var age = age +1;
}

//etc......
document.write(age);

有没有更好的方法来做if语句?这样我就不用每年都写一篇了?我想不通!

4

3 回答 3

2

首先,您可以像这样轻松完成您的日常技巧:

age += Math.floor(days/360); // should be 365 imho

其次,您不需要将天数转换为年(由于闰年而在边缘被打破),但您可以使用 getYear 方法:

var age = 18
var today = new Date();

var myDate=new Date();
myDate.setFullYear(2013,3,13); /* My birthday is april 13th */

var age += today.getYear() - myDate.getYear();
// adjust for months and days
if (today.getMonth() < myDate.getMonth() || 
    today.getMonth() == myDate.getMonth()  && today.getDay() < myDate.getDay())
     age--;

document.write(age);
于 2013-10-20T09:45:10.663 回答
1

你可以这样尝试:-

var age = 18
var today = new Date();

var myDate=new Date();
myDate.setFullYear(2013,3,13); /* My birthday is april 13th */

var y = (today - myDate);

var days =  ( y / (1000*60*60*24));

var x= Math.floor(days/365.25);

var age = age +x;

document.write( age);
于 2013-10-20T09:43:15.853 回答
0

除非您想编写可以处理闰年、闰世纪和闰秒的算法,否则我建议您使用 Date 类和/或库的内置方法来帮助您确定一年是 365 天还是 366 天。大多数年份没有 360 天。

于 2013-10-20T09:47:54.133 回答