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
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>