这篇文章主要介绍了关于通过日期计算星座,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下起始月份号数星座结束月份号数时间区间1222摩羯座11912/22 - 1/19

120水瓶座2181/20 - 2/18

219双鱼座3202/19 - 3/20

321白羊座4203/22 - 4/20

421金牛座5204/22 - 5/20

521双子座6215/22 - 6/21

622巨蟹座7226/22 - 7/22

723狮子座8227/22 - 8/22

823处女座9228/22 - 9/22

923天秤座10229/22 - 10/22

1023天蝎座112110/22 - 11/21

1122射手座122111/22 - 12/21

1222摩羯座11912/22 - 1/19

一年12个月份

抽象一个数组c = [摩羯,水瓶, 双鱼,白羊,金牛,双子,巨蟹,狮子,处女,天秤,天蝎,射手,摩羯]

c 为月份列表

该数组中序号为 1 的水瓶座对应的起始月份为 1月

序号为 起始月份 或者 (结束月份 - 1)

日期所对应的星座 起始月份为日期所在月 或者 终结月份为该月(即起始月份为日期所在月-1)

为了得出日期对应的星座,我们通过日期来计算对应星座的起始月份startMonth = month - [(day < Date[month]) ? 1 : 0]

c = [摩羯,水瓶, 双鱼,白羊,金牛,双子,巨蟹,狮子,处女,天秤,天蝎,射手,摩羯]

index = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

Date = [22, 20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22]

startMonth - 计算后对应星座的起始月份;

Month - 日期对应的月份;

day - 日期对应的号数;

Date - 月份列表对应的日期列表;

解释:

对应星座起始月份 = 当前月份 - [(当前日期是否小于对应月份的日期)是则为1,否则为0]

判断(日期对应号数 < 起始月份为日期对应月份的星座的起始号数)

例子 2月18日 为水瓶座 2月19日 为双子座

18 < 19 (19为2月的双鱼座的起始日期) 小于成立即 2 - 1 = 1 一月对应的星座为水瓶座

19 = 19 小于不成立, 2 - 0 = 2 所以为二月对应的星座 双鱼座

简化列表 将日期列表取消

day < Date[month] =》 day - x < Date[month] - x

令 y = Date[month] - x ,y需要为个位数

现在起始日期对应的号数 最小为19号(双鱼座) 最大为23号(狮子座)

穷举并且列出表格xyx + y = 19xyx + y =23109149√

118158√

127167√

136176√

145√185√

154√194√

163√203

172√212

181√221

190√230

两列中x的交集为 14 -19

取x = 14Date = [22, 20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22]

date - 14

最后列表为8,6,5,7,7,8,9,9,9,9,8,8 => '865778999988'startMonth = month - [(day < Date[month]) ? 1 : 0]

=> month - (day - 14 < '865778999988'.charAt(month))

true 自动变为 1;

true 自动变为 0;

charAt为寻找字符串对应位置的str

最终代码var date = new Date(2017,1,12);

//设置日期

function getHoroscope(date) {

var c = ['摩羯','水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天秤','天蝎','射手','摩羯']

var month = date.getMonth() + 1;

var day = date.getDate();

var startMonth = month - (day - 14 < '865778999988'.charAt(month));

return c[startMonth]

}

getHoroscope(date);

//水瓶

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

html输入日期算出星座,如何通过日期计算星座相关推荐

  1. java中怎么通过日期算出天数_Java如何通过计算两个日期的时间差来算出天数

    Java如何通过计算两个日期的时间差来算出天数,年月日,天数,时间,退房,时分 Java如何通过计算两个日期的时间差来算出天数 易采站长站,站长之家为您整理了Java如何通过计算两个日期的时间差来算出 ...

  2. 给定一个日期,算出上周五日期

    给定一个日期,算出上周五日期 DateTime dt=new DateTime();    for(double loop=0;loop<7;loop++)    {     dt=DateTi ...

  3. html输入日期算出星座,java输入日期计算星座

    java输入日期计算星座 [2021-01-31 12:59:06]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...

  4. html输入日期算出星座,C++输入日期 判断所属星座

    目标:实现输入一个生日,判断属于哪一个星座.ios #include "stdafx.h" #include "iostream" #include " ...

  5. html输入日期算出星座,通过日期计算星座

    分析和理解根据日期计算星座函数 本博客根据文章 原文出自CSDN 的文章,知识产权归原文作者所有! 起始月份 号数 星座 结束月份 号数 时间区间 12 22 摩羯座 1 19 12/22 - 1/1 ...

  6. java日期算前一天_java 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)...

    1.情景展示 java 根据系统当前日期获取前一天日期.后一天日期,或者根据初始日期推算出期望(向前/向后)日期. 2.解决方案 导包 import java.text.ParseException; ...

  7. php算出文件相对路径,php计算两个文件相对路径的方法

    本文实例讲述了php计算两个文件相对路径的方法.分享给大家供大家参考.具体如下: 一.问题: 写一个php函数算出两个文件的相对路径.例如$a="/a/b/c/d/e.php"; ...

  8. java 计算星座_Java根据出生日期计算星座

    下面我们来了解一下十二星座对应的日期划分范围.白羊:0321~0420          天秤:0924~1023 金牛:0421~0521          天蝎:1024~1122 双子:0522 ...

  9. 输入参数_太实用!输入参数1秒算出功率,这款计算工具又快又准

    随着互联网红利的不断加深,到了后期,不断地各种工具开始涌现,方便了很多用户,填补了市场上的很多空白,有生活娱乐类.提高效率类.垂直专业类.系统工具类等等. 工业行业作为各行各业的大头,机械化.智能化等 ...

  10. js 实现 输入 年月日 算出 是当年的第几天?

    题目: 输入年月日 ,求出 是当年的第几天? 1.获取年份 2.判断 年份 是否是 平年和闰年 if (year % 4 == 0 && year % 100 != 0 || year ...

最新文章

  1. boost::promise相关的测试程序
  2. c++ 舞伴配对问题_R绘图:配对样本差异表达作图ggpubr
  3. 正式宣战关系型数据库市场,华为宣布开源一款人工智能数据库
  4. session和cookie的区别和联系
  5. SSIS - 7.发邮件任务
  6. 字典树 之 hdu 4099
  7. h5打开app指定页面,有则打开,无则下载
  8. 联想微型计算机改win76,联想ideacentre一体机改win7详细教程
  9. python tensorflow 以图搜图_以图搜图系统工程实践
  10. 中西方对时间的差异_中西文化的差异-2 时间观
  11. 采用circlize包绘制Circos图
  12. 全民远程办公的第一天,为什么你的视频会议卡住了?
  13. Python自然语言处理实战(1):NLP基础
  14. 基于WebGL架构的3D可视化平台—城市地下管线3D可视化
  15. NIST测试结果分析
  16. 亚马逊运营选品时的几个小技巧,爆款日出千单
  17. 采用fmm对gps data进行路径匹配
  18. RV1126 Linux AP6256调试、WIFI热点扫描
  19. 学术论文中的“影响机制”、“影响机理”、“影响路径”等有什么不同?
  20. Leptonica PIX 与 Qt QImage 的相互转换

热门文章

  1. 3D游戏引擎的Web化
  2. SBC音频编解码算法在无线音频传输上的简单应用
  3. matlab 用循环求和,matlab循环求和函数
  4. 今天你的人生做减法了吗?
  5. 计算机视觉实习面试经历
  6. 基于Android的太阳方位角计算工具
  7. vue 使用 createjs 绘制扇形
  8. 坚果云服务器地址,#网盘每日小技巧分享# 坚果云API是什么?
  9. 安装了智能家居设备后会影响传统家居的使用吗?
  10. markdown文本居中