首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 云计算 >

求比较日期的算法解决思路

2012-03-07 
求比较日期的算法有这样一条表达式, 类型当它是日期, 除了A 不为空外, BCDEFG 都为可以空.A B C D

求比较日期的算法
有这样一条表达式, 类型当它是日期, 除了A 不为空外, BCDEFG 都为可以空. 
  A < B < C <= D <= E < F <= G 
(1) 判断这些数是否为空, 如果不为空, 就按上面的规律进行对比. 如果等式例如 B <C 
  不成立时, 报错记号并继续比较,对比完再把不合格的报出来. 
(2) 当B为空时, C往上找比较对象 , 找A比较, 如 A <C ,如此类推. B为空, C为空时, D就去找A比较一路比下去. 
请教一下有没有好的算法? 


 

[解决办法]

Java code
import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * @class      :.CompareDate.java * @author     :xufei * @createDate :Aug 5, 2008 9:49:14 AM */public class CompareDate {        String a = "20070101";    String b = "20080101";    String c = "20070201";    String d = "";    String e = "20070301";    String f = "";    String g = "20070404";    List<String> errorList = new ArrayList<String>();    public void compare(){        //先把空的去掉        List<String> list = getNoNullList();        int count = list.size();                for (int i = 0; i < count - 1; i++) {            String firstDate = list.get(i);            String secondDate = list.get(i + 1);            if(firstDate.equals("c") || firstDate.equals("d") || firstDate.equals("f")) {                if(firstDate.compareTo(secondDate) > 0) {                    errorList.add(firstDate);                }            } else {                if(firstDate.compareTo(secondDate) >= 0) {                    errorList.add(firstDate);                }            }        }                System.out.print(errorList.toString());    }        private List getNoNullList() {        List list = new ArrayList();        addList(list, a);        addList(list, b);        addList(list, c);        addList(list, d);        addList(list, e);        addList(list, f);        addList(list, g);        return list;    }        private void addList(List list, String src) {        if(!src.equals("")){            list.add(src);        } else {            errorList.add(src);        }    }    public static void main(String a []) {        CompareDate compareDate = new CompareDate();        compareDate.compare();            }} 

热点排行