gpt4 book ai didi

javascript - 在javascript中确定 future 年龄

转载 作者:行者123 更新时间:2023-11-29 18:15:37 25 4
gpt4 key购买 nike

我正在从事一个项目,该项目要求我实现一种方法来确定工作日后一天的人的年龄;也就是每年九月的第一个星期一。

这个方法在以后的年份会用到,所以需要判断当前年份和劳动节后一天的人的年龄。

下面是我用来获取学生当前年龄的代码:

function getAge(dateString) {
var today = new Date();
var birthDate = new Date(dateString);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
return age; //this returns the students current age
}

谢谢!

最佳答案

对代码进行了大量更改。因此它可以处理更多情况。

在这里查看 fiddle :http://jsfiddle.net/y6kTc/

function getAge(birthday, whatDay) {
var whatDay = whatDay || new Date(),
birthday = typeof birthday.getTime === "function" ? birthday : new Date(birthday)

var age = whatDay.getFullYear() - birthday.getFullYear(),
m = whatDay.getMonth() - birthday.getMonth();

if (m < 0 || (m === 0 && whatDay.getDate() < birthday.getDate())) {
age--
}

return age //this returns the students current age
}

默认情况下,您可以为生日传入日期字符串或日期对象并获取当前生日 getAge( new Date("5/29/1988") )getAge (“1988 年 5 月 29 日”)

真正的魔法发生在 whatDay 参数上。有了它,您可以设置 future 的某一天进行计算 getAge("5/29/1988", new Date("9/1/2014"))

要获得像劳动节这样的一天,您可以传递一个自调用函数来计算这一天,如下所示:

getAge( "5/29/1988", (function(date) {
var year = date.getFullYear(),
day = 1

date.setMonth(8)
date.setDate(day) //8 for September, 1 for the first

while (date.getDay() !== 1) {
date.setDate(day++)
}

return date
})(new Date()) )

关于javascript - 在javascript中确定 future 年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23549850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com