计算世界完全对称日的js代码,粗糙版


Posted in Javascript onNovember 04, 2011

比如20111102
下午闲着无聊,写了一个,代码没有经过优化,
只是凭着一股子无聊劲写出来的。
如果有哪位仁兄有兴趣把代码优化一下,感谢不尽

经过计算在公元2000年到3000年,一共有36个符合条件的世界完全对称日。
见到园子里有的博客,可以在下面加“运行”,直接执行Html代码,不知道怎么整的,可有人告知一下

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>公元1000年以后的回文日</title> 
<script> 
/** 
* 将日期变为标准8位格式,如20111102 
* 将其分为四段 分别为 20 11 11 02 为世纪,年,月,日 
* 按年算法时间复杂度为O(n3),而从后四位,月日即可得到最后的结果,效率更高 
* 因为闰年2月尾数为9,超过人类漫长的历史,所以无须考虑 
*/ 
;;(function(){ 
var theDateList=[]; 
//出现回文日的世纪最大值 
var maxForCentury=30; 
//出现回文日的世纪最小值 
var minForCentury=20; 
//可能出现回文日的年数最大值,这里只粗糙处理 
var maxForYear=21; 
var maxForDay=31;//不排除闰年 
for(var i=1;i<=12;i++){ 
var stdYear,stdDay; 
var stdMonth=getStandardDate(i); 
/* 
if(getReverseDate(stdMonth)>maxForDay){ 
continue; 
} 
*/ 
maxForDay=getDate(i); 
for(var k=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(var i=0;i<theDateList.length;i++){ 
console.log(theDateList[i]); 
} 
console.log('共有%d条记录',theDateList.length) 
/** 
* 根据月份算当前月天数 
* @param {int} val 月份 
* @return {int} 
*/ 
function getDate(val){ 
return val%2==0?30:31; 
} 
/** 
* 将小于10的日期值换成标准8位日期值 
* @param {int} val 月份或日期 
* @return {string} 标准格式 
*/ 
function getStandardDate(val){ 
if(val<10){ 
return '0'+val; 
} 
return val.toString(); 
} 
/** 
* 反转日期 
* @param {string} date 月份或日期的标准格式 
* @return {string} 反转后的标准格式 
*/ 
function getReverseDate(date){ 
return date.split("").reverse().join(""); 
} 
})(); 
</script> 
</head> 
<body> 
</body> 
</html>
Javascript 相关文章推荐
在b/s开发中经常用到的javaScript技术
Aug 23 Javascript
jQuery学习基础知识小结
Nov 25 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
Jun 28 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
Oct 10 Javascript
原生js实现addclass,removeclass,toggleclasss实例
Nov 24 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
Mar 08 Javascript
利用node.js如何搭建一个简易的即时响应服务器
May 28 Javascript
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
详解webpack4之splitchunksPlugin代码包分拆
Dec 04 Javascript
Vue的路由及路由钩子函数的实现
Jul 02 Javascript
jquery ajax 请求小技巧实例分析
Nov 11 jQuery
在标题栏显示新消息提示,很多公司项目中用到这个方法
Nov 04 #Javascript
由Javascript实现的页面日历
Nov 04 #Javascript
jQuery中jqGrid分页实现代码
Nov 04 #Javascript
一个关于jqGrid使用的小例子(行按钮)
Nov 04 #Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
Nov 04 #Javascript
在网站上应该用的30个jQuery插件整理
Nov 03 #Javascript
关于URL中的特殊符号使用介绍
Nov 03 #Javascript
You might like
linux中cd命令使用详解
2015/01/08 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
Python中的迭代器漫谈
2015/02/03 Python
python win32 简单操作方法
2017/05/25 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
python中如何使用虚拟环境
2020/10/14 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
远程调用的原理
2014/07/05 面试题
财务信息服务专业自荐书范文
2014/02/08 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
学习十八大标语
2014/10/09 职场文书
大学生团员个人总结
2015/02/14 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
红色经典电影观后感
2015/06/18 职场文书
爱国主义电影观后感
2015/06/18 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫
详解PyTorch模型保存与加载
2022/04/28 Python