Home > Web Front-end > JS Tutorial > JS code for calculating the day of perfect symmetry in the world, rough version_javascript skills

JS code for calculating the day of perfect symmetry in the world, rough version_javascript skills

WBOY
Release: 2016-05-16 17:59:38
Original
1031 people have browsed it

For example, 20111102
I was bored in the afternoon and wrote one. The code was not optimized.
I just wrote it out of boredom.
If anyone is interested in optimizing the code, thank you very much

After calculation, from 2000 to 3000 AD, there are a total of 36 qualifying days of perfect symmetry in the world.
When you see some blogs in the garden, you can add "run" below to directly execute the Html code. I don't know how to fix it, can someone tell me

Copy Code The code is as follows:





Palindromes after 1000 AD
<script> <br>/**<br>* Change the date into a standard 8-bit format, such as 20111102 <br>* Divide it into four segments: 20 11 11 02 for the century, year, month, and day <br>* The time complexity of the year-by-year algorithm is O(n3), and the final result can be obtained from the last four digits, month and day, which is more efficient<br>* Because the mantissa of February in leap years is 9, which exceeds the long history of mankind, so there is no need to consider<br>*/ <br>;;(function(){ <br>var theDateList=[]; <br>//The maximum value of the century when a palindrome day occurs<br>var maxForCentury=30; <br>//The minimum value of the century when a palindrome day occurs<br>var minForCentury=20; <br>//The maximum value of the number of years when a palindrome day may occur, only rough processing is done here<br>var maxForYear=21; <br>var maxForDay=31;//Leap years are not excluded<br>for(var i=1;i<=12;i ){ <BR>var stdYear,stdDay; <BR>var stdMonth=getStandardDate(i); <BR>/* <BR>if(getReverseDate(stdMonth)>maxForDay){ <br>continue; <br>} <br>*/ <br>maxForDay=getDate(i); <br>for(var k=1 ;k<maxForDay;k ){ <BR>stdDay =getStandardDate(k); <BR>stdYear=getReverseDate(stdMonth stdDay); <BR>if(parseInt(getReverseDate(stdDay),10)>=minForCentury <br> && parseInt(getReverseDate(stdDay),10)<maxForCentury) <BR>theDateList.push(stdYear stdMonth stdDay) <BR>} <BR>} <BR>theDateList.sort(); //Sort<BR>for( var i=0;i<theDateList.length;i ){ <BR>console.log(theDateList[i]); <BR>} <BR>console.log('Total %d records',theDateList.length) <BR>/**<BR>* Calculate the number of days in the current month according to the month <BR>* @param {int} val month <BR>* @return {int} <BR>*/ <BR>function getDate(val){ <BR>return val%2==0?30:31; <BR>} <BR>/**<BR>* Convert date values ​​less than 10 to standard 8-digit date values ​​<BR>* @param {int} val month or day <BR>* @return {string} standard format <BR>*/ <BR>function getStandardDate(val){ <BR>if(val<10){ <BR>return '0' val; <BR>} <BR>return val.toString(); <BR>} <BR>/ **<BR>* Reversed date <BR>* @param {string} date The standard format of the month or date <BR>* @return {string} The reversed standard format <BR>*/ <BR>function getReverseDate(date){ <BR>return date.split("").reverse().join(""); <BR>} <BR>})(); <BR></script>




Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template