JS根据生日月份和日期计算星座的简单实现方法

网络编程 2025-03-25 03:30www.168986.cn编程入门

本文将介绍如何使用JavaScript根据生日月份和日期计算星座。我们将JavaScript日期时间与字符串操作的技巧,为对这方面感兴趣的朋友们提供实用的参考。

我曾见过许多复杂的JavaScript代码来计算星座,冗长的代码让人难以理解。我决定尝试写一个更简洁的版本。

我们的函数`getAstro`只需两个参数:月份(`m`)和日期(`d`)。让我们看看它是如何工作的。

我们有一个包含所有星座名称的字符串`s`。接着,我们有一个数组`arr`,其中每个元素代表每个星座的开始日期。计算方法是:如果生日在当月的第一天之前,星座就是上个月的后一个星座;否则,就是该月的星座。这是通过字符串的`substr`方法和数组中的日期比较来实现的。

以下是精简后的代码示例:

```javascript

function getAstro(m, d) {

let s = "魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯";

let arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22];

return s.substr(m 2 - (d < arr[m - 1] ? 2 : 0), 2);

}

```

如果你喜欢更简洁的代码,我们可以进一步改进这个函数,使用字符串的`charAt`方法和一些数学运算来实现同样的功能。例如:

```javascript

function getAstro(m, d) {

let constellationStr = "魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯";

let constellationsStart = "102223444433";

return constellationStr.substr(m 2 - (d < constellationsStart.charAt(m - 1) ? 2 : 0), 2);

}

```

为了测试这个函数,我们可以写一个简单的测试函数`test`,它将月份和日期作为参数,并输出对应的星座。例如:

```javascript

function test(m, d) {

document.writeln(`${m}月${d}日 ${getAstro(m, d)}`);

}

// 测试示例:

test(12, 21); // 输出:12月21日 射手

test(12, 22); // 输出:12月22日 魔羯

// 更多测试...

```

魔羯座(12/22 - 1/19)、水瓶座(1/20 - 2/18)、双鱼座(2/19 - 3/20)...(依此类推)

希望本文对JavaScript程序设计爱好者能有所启发和帮助。更多关于JavaScript的精彩内容,可查看本站的其他专题。

注:本文未涉及的内容请忽略,如有其他问题,欢迎提问。

上一篇:vue中实现先请求数据再渲染dom分享 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by