计算世界完全对称日的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 相关文章推荐
ExtJS Ext.MessageBox.alert()弹出对话框详解
Apr 02 Javascript
自写简单JS判断是否已经弹出页面
Oct 20 Javascript
jQuery替换字符串(实例代码)
Nov 13 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
Aug 13 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
Dec 04 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
Mar 07 Javascript
基于jquery实现简单的分页控件
Mar 17 Javascript
基于jQuery实现淡入淡出效果轮播图
Jul 31 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
Feb 15 Javascript
利用vue.js实现被选中状态的改变方法
Feb 08 Javascript
js实现按钮开关单机下拉菜单效果
Nov 22 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
Mar 02 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
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
php中截取字符串支持utf-8
2007/01/18 PHP
linux iconv方法的使用
2011/10/01 PHP
二招解决php乱码问题
2012/03/25 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
php版微信公众平台之微信网页登陆授权示例
2016/09/23 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
javascript 动态添加事件代码
2008/11/30 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
window.ActiveXObject使用说明
2010/11/08 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
解决vue跨域axios异步通信问题
2019/04/17 Javascript
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
python对html代码进行escape编码的方法
2015/05/04 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
C++是不是类型安全的
2014/02/18 面试题
EJB面试题
2015/07/28 面试题
班长自荐书范文
2014/02/11 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书