计算世界完全对称日的js代码,粗糙版
2023-06-13 09:14:31 时间
比如20111102
下午闲着无聊,写了一个,代码没有经过优化,
只是凭着一股子无聊劲写出来的。
如果有哪位仁兄有兴趣把代码优化一下,感谢不尽
经过计算在公元2000年到3000年,一共有36个符合条件的世界完全对称日。
见到园子里有的博客,可以在下面加“运行”,直接执行Html代码,不知道怎么整的,可有人告知一下
复制代码代码如下:
下午闲着无聊,写了一个,代码没有经过优化,
只是凭着一股子无聊劲写出来的。
如果有哪位仁兄有兴趣把代码优化一下,感谢不尽
经过计算在公元2000年到3000年,一共有36个符合条件的世界完全对称日。
见到园子里有的博客,可以在下面加“运行”,直接执行Html代码,不知道怎么整的,可有人告知一下
<!DOCTYPEHTML>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8">
<title>公元1000年以后的回文日</title>
<script>
/**
*将日期变为标准8位格式,如20111102
*将其分为四段分别为20111102为世纪,年,月,日
*按年算法时间复杂度为O(n3),而从后四位,月日即可得到最后的结果,效率更高
*因为闰年2月尾数为9,超过人类漫长的历史,所以无须考虑
*/
;;(function(){
vartheDateList=[];
//出现回文日的世纪最大值
varmaxForCentury=30;
//出现回文日的世纪最小值
varminForCentury=20;
//可能出现回文日的年数最大值,这里只粗糙处理
varmaxForYear=21;
varmaxForDay=31;//不排除闰年
for(vari=1;i<=12;i++){
varstdYear,stdDay;
varstdMonth=getStandardDate(i);
/*
if(getReverseDate(stdMonth)>maxForDay){
continue;
}
*/
maxForDay=getDate(i);
for(vark=1;k<maxForDay;k++){
stdDay=getStandardDate(k);
stdYear=getReverseDate(stdMonth+stdDay);
if(parseInt(getReverseDate(stdDay),10)>=minForCentury
&&parseInt(getReverseDate(stdDay),10)<maxForCentury)
theDateList.push(stdYear+stdMonth+stdDay)
}
}
theDateList.sort();//排序
for(vari=0;i<theDateList.length;i++){
console.log(theDateList[i]);
}
console.log("共有%d条记录",theDateList.length)
/**
*根据月份算当前月天数
*@param{int}val月份
*@return{int}
*/
functiongetDate(val){
returnval%2==0?30:31;
}
/**
*将小于10的日期值换成标准8位日期值
*@param{int}val月份或日期
*@return{string}标准格式
*/
functiongetStandardDate(val){
if(val<10){
return"0"+val;
}
returnval.toString();
}
/**
*反转日期
*@param{string}date月份或日期的标准格式
*@return{string}反转后的标准格式
*/
functiongetReverseDate(date){
returndate.split("").reverse().join("");
}
})();
</script>
</head>
<body>
</body>
</html>
相关文章
- Fabric.js 使用纯色遮挡画布(前景色)
- 使用 Node.js Stream API 减少服务器端内存消耗的一个具体例子
- particles.js使用及配置
- js实现生肖星座年龄余年计算
- js中四舍五入的方法_JS取整
- 在 Vue.js 中通过计算属性动态设置属性值
- JS手撕(七) 事件总线
- 根据生日的月份和日期计算星座的js代码详解编程语言
- JS前台加密,java后台解密实现详解编程语言
- 使用 JS 操作 Redis:实现强大数据存储.(js调用redis)
- 使用JS在网页中连接Oracle数据库(js网页链接oracle)
- 计算100000数组js脚本的执行时间
- 用js实现计算代码行数的简单方法附代码
- CSS+Js遮罩效果的TAB及焦点图片切换(推荐)
- 计算文本域剩佘长度的js代码
- JS函数验证总结(方便js客户端输入验证)
- JS获取并操作iframe中元素的方法
- 在服务端(Page.Write)调用自定义的JS方法详解
- js获取url参数代码实例分享(JS操作URL)
- JS版的date函数(和PHP的date函数一样)
- 小结Node.js中非阻塞IO和事件循环