计算世界完全对称日的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 相关文章推荐
JQUERY THICKBOX弹出层插件
Aug 30 Javascript
jQuery选择器基础入门教程
May 10 Javascript
自己封装的一个简单的倒计时功能实例
Nov 23 Javascript
vue日期组件 支持vue1.0和2.0
Jan 09 Javascript
js实现图片360度旋转
Jan 22 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
vue组件学习教程
Sep 09 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
Dec 19 Javascript
vue实现城市列表选择功能
Jul 16 Javascript
bootstrap table表格插件之服务器端分页实例代码
Sep 12 Javascript
Vue实现push数组并删除的例子
Nov 01 Javascript
微信小程序之左右布局的实现代码
Dec 13 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
实用函数10
2007/11/08 PHP
PHP实现懒加载的方法
2015/03/07 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
JS 中LocalStorage和SessionStorage的使用
2017/08/17 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
基于JavaScript中字符串的match与replace方法(详解)
2017/12/04 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
不可错过的十本Python好书
2017/07/06 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
七年级数学教学反思
2014/01/22 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers