Javascript计算星座
今天看群里一哥们折腾得挺热乎,手痒随便写了一个DEMO,供初学者参考。
重点,写程序先定注释,明确思路后再写具体代码。
//星座定义
var constellations = [
{"Start":121,"End":220,"Name":"水平座"}, {"Start":221,"End":320,"Name":"双鱼座"},
{"Start":321,"End":420,"Name":"白羊座"}, {"Start":421,"End":520,"Name":"金牛座"},
{"Start":521,"End":620,"Name":"双子座"}, {"Start":621,"End":720,"Name":"巨蟹座"},
{"Start":721,"End":820,"Name":"狮子座"}, {"Start":821,"End":920,"Name":"处女座"},
{"Start":921,"End":1020,"Name":"天秤座"}, {"Start":1021,"End":1120,"Name":"天蝎座"},
{"Start":1121,"End":1220,"Name":"射手座"} ]; function WhatIsYourConstellation(y,m,d)
{
/*
判断日期有效性
1,3,5,7,8,10,12为31天
2月润年29,非润年28
4,6,9,11为30天
*/
var daysInMonth = [31,99,31,30,31,30,31,31,30,31,30,31]; //检测年份
if(y < 1970 || y > 2099) return "滚犊子1"; //检测月份
if(m < 1 || m > 12) return "滚犊子2"; //检测日期
var mDays = daysInMonth[m-1];
//如果是二月,要根据年份计算天数,不是二月时略过此计算
if(m == 2)
{
mDays = GetSpecialDays(y)
} //判断日数据是不是在月份的有效天范围
if(d < 0 || d > mDays) return "滚犊子3"; //好了,走到这一步,说明上面的验证都TM过了。
//这才判断是哪一个星座
//星座座标等于m*100 + d
var pos = m * 100 + d; for(var i in constellations)
{
if(pos >= constellations[i].Start && pos <= constellations[i].End)
{
return constellations[i].Name;
}
}
}
//根据年份计算二月天数
function GetSpecialDays(y)
{
if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) return 29;
return 28;
}
调用DEMO
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script src="xx.js"></script>
<div id="log"> </div>
<script>
function testCase(y,m,d)
{
var p = document.createElement("p");
p.style.color = "red";
p.style.fontSize = "14px";
var data = WhatIsYourConstellation(y,m,d);
p.innerText = y + "年" + m + "月" + d + "日的计算结果:" + data;
document.getElementById("log").appendChild(p);
} testCase(1800,1,1);
testCase(2000,-1,1);
testCase(2000,13,1);
testCase(2000,1,-1);
testCase(2000,1,32);
testCase(2000,2,32);
testCase(2000,2,29);
testCase(2001,2,29);
</script>
测试结果

Javascript计算星座的更多相关文章
- javascript计算两个时间差
其实,javascript计算时间差的方式非常简单,如果是默认的Date()类型,直接相减就是相差的毫秒数. var d1 = new Date('2016/03/28 10:17:22'); var ...
- javascript 计算文件MD5 浏览器 javascript读取文件内容
原则上说,浏览器是一个不安全的环境.早期浏览器的内容是静态的,用户上网冲浪,一般就是拉取网页查看.后来,随着互联网的发展,浏览器提供了非常丰富的用户交互功能.从早期的表单交互,到现在的websocke ...
- javascript计算字符串长度
javascript计算字符串长度 学习了:https://blog.csdn.net/u012934325/article/details/75214847 function getByteLen( ...
- js 日期计算星座 根据生日的月份和日期,一行代码计算星座的js小函数(转)
本博客根据 开源中国作者清风徐不来 的文章 根据生日的月份和日期,一行代码计算星座的js小函数(转) 原文出自CSDN 无心的专栏 的文章,知识产权归原文作者所有! 点击查看原文:js 日期计算星座
- JavaScript实例技巧精选(12)—计算星座与属相
>>点击这里下载完整html源码<< 这是截图: 核心代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- ...
- Javascript计算密码的强度
用Javascript评估用户输入密码的强度 1.如果密码少于5位,那么就认为这是一个弱密码.2.如果密码只由数字.小写字母.大写字母或其它特殊符号当中的一种组成,则认为这是一个弱密码.3.如果密码由 ...
- javascript 计算两个日期的差值
代码 Typescript版 /** * TimeSpan just like the class TimpSpan in C# ,represent the time difference * @c ...
- 利用JavaScript计算引擎进行字符串公式运算
1.通过js计算引擎计算(java自带) 2.计算公式除了支持基本的方法之外还支持简单js脚本分支计算 3.通过设定map传入参数 4.默认返回最后一个计算结果,如果需返回特定值,将变量补写在公式最后 ...
- Javascript计算世界完全对称日
今天是 2011-11-02 日,微博啊.G+啊什么的都传是世界完全对称日,还说是多少年一遇的.下面写个 JavaScript 小程序,看看是否真的N年一遇.计算范围在公元2000年到3000年. 名 ...
随机推荐
- windows下定时任务设置
Linux 系统可以通过crontab -e 设置定时任务,Windows系统没有crontab命令,但是Windows系统有跟crontab命令比较接近的命令: schtasks 命令. # 设置定 ...
- 下面属于javascript对象的有:( )
下面属于javascript对象的有:( ) A. Window B. Document C. Form D. String E. Navigator 解答:ACE
- e575. The Quintessential Drawing Program
To draw on the screen, it is first necessary to subclass a JComponent and override its paint() metho ...
- 为什么要整合apache 和tomcat?
1. Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展. 2. Apache和Tomcat都可以做为独立的web服务器来运行,但是A ...
- json格式的javascript对象用法分析
格式: objectName = { property1:value1, property2:value2, …, propertyN:valueN } property是对象的属性 ,val ...
- java (java.exe) 解释器 -D 选项
java.exe -h 其中: -D<名称>=<值> : 设置系统属性 如帮助说明的那样,该选项用于设置 java 运行时的 System.getProperty(prop ...
- OpenCV学习:体验ImageWatch
Image Watch是在VS2012及以上版本上使用的一款OpenCV插件工具,能够实时显示图像和矩阵Mat的内容,跟Matlab很像,方便程序调试,相当好用. 1)安装Visual Studio ...
- hbase shell中执行list命令报错:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
问题描述: 今天在测试环境中,搭建hbase环境,执行list命令之后,报错: hbase(main):001:0> list TABLE ERROR: org.apache.hadoop.hb ...
- linux环境中查看主机型号(机器型号)
需求说明: 今天一同事让统计测试环境主机型号,在此记录下. 操作过程: 1.通过dmidecode工具查询,产品型号(机器型号) [root@redhat6 ~]# dmidecode | grep ...
- MVC源码
http://aspnetwebstack.codeplex.com/ MVC源码