RT:我想实现一个功能,给定起始年份和终止,判断他们之间的年份是否是世界完全对称日,如果是,则打印出来;
世界完全对称日:所在的年份和当年月份+日期反转后相等,则是世界完全对称日;如:"2010".equals(new stringBuffer("0102").reverse());
给定的起止年份格式:
String start = "2010-01-02";
String end = "3000-01-01";
String s = start.replaceAll("-", "");
String[] str={s.substring(0, 4),s.substring(4)};
StringBuffer sb = new StringBuffer(str[1]);
System.out.println(str[0].toString().equals(sb.reverse().toString()));
1 package bing.test;
2
3 import java.text.ParseException;
4 import java.text.SimpleDateFormat;
5 import java.util.Date;
6
7 public class SymmetryDay {
8
9 public static void main (String[] args){
10
11 String start = "2010-01-01";
12 String end = "3000-01-01";
13 SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
14 Date startDate;
15 long startDateL;
16 long endDateL;
17 long oneDay = 24*60*60*1000;
18 try {
19 startDate = myFormatter.parse(start);
20 startDateL = startDate.getTime();
21 endDateL = myFormatter.parse(end).getTime();
22 while(startDateL < endDateL){
23 String s = myFormatter.format(startDate).replaceAll("-", "");
24 String[] str={s.substring(0, 4),s.substring(4)};
25 StringBuffer sb = new StringBuffer(str[1]);
26 if(str[0].toString().equals(sb.reverse().toString())){
27 log(myFormatter.format(startDate));
28 }
29 startDateL = startDateL + oneDay;
30 startDate.setTime(startDateL);
31 }
32
33 } catch (ParseException e) {
34 // TODO Auto-generated catch block
35 e.printStackTrace();
36 }
37 }
38 public static void log(Object m){
39 System.out.println(m);
40 }
41
42
43 }
2010-01-02
2011-11-02
2020-02-02
2021-12-02
2030-03-02
2040-04-02
2050-05-02
2060-06-02
2070-07-02
2080-08-02
2090-09-02
2101-10-12
2110-01-12
2111-11-12
2120-02-12
2121-12-12
2130-03-12
2140-04-12
2150-05-12
2160-06-12
2170-07-12
2180-08-12
2190-09-12
2201-10-22
2210-01-22
2211-11-22
2220-02-22
2221-12-22
2230-03-22
2240-04-22
2250-05-22
2260-06-22
2270-07-22
2280-08-22
2290-09-22
问题解决咯,只是有点缺陷就是:代码没有注释....
核心算法你已经懂了,我也是使用你所提供的算法,我添加的地方只是如何将时间与String之间互相转换,以及日期按天数增加而已。
这代码相当简单了,自己看看还是能明白的:)
不过下次我会记得加注释。
谢谢你的提醒。
@丿灬钧衡石丶溪: