JS根据生日月份和日期计算星座的简单实现方法
本文将介绍如何使用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的精彩内容,可查看本站的其他专题。
注:本文未涉及的内容请忽略,如有其他问题,欢迎提问。
编程语言
- JS根据生日月份和日期计算星座的简单实现方法
- vue中实现先请求数据再渲染dom分享
- php求两个目录的相对路径示例(php获取相对路径
- Jquery实时监听input value的实例
- 基于jQuery实现数字滚动效果
- 微信小程序 五星评分(包括半颗星评分)实例代码
- React Native中的RefreshContorl下拉刷新使用
- 关于jquery layui弹出层的使用方法
- PHP 中提示undefined index如何解决(多种方法)
- 解析csv数据导入mysql的方法
- vue指令只能输入正数并且只能输入一个小数点的
- Angular4 反向代理Details实践
- layui select获取自定义属性方法
- WebAPI 实现前后端分离的示例
- 使用js画图之正弦曲线
- 简单谈谈json跨域