日期:2014-05-20  浏览次数:21006 次

比较两个java.util.Date类型日期,返回其中的最小值??
写了以下这个方法,就是有两个java.util.Date类型日期,对他们进行比较,如果都为空就返回当前日期,如果有一个为空,就返回那个非空的日期,否则,就返回比较小的那个日期,用下面这个方法,感觉不是最好的,是不是啰嗦阿,哪位能帮忙简化一下,谢谢了!

private   java.util.Date   dateCompareToMix(java.util.Date   dateFirst,java.util.Date   dateLast)   {
                java.util.Date     mixDate   =   null;
                Calendar   calValue   =   Calendar.getInstance();
                Calendar   calFirst   =   Calendar.getInstance();                
                Calendar   calLast   =   Calendar.getInstance();
                  if   (dateFirst   ==   null   &&   dateLast   ==   null){
                mixDate=calValue.getTime();
                  }else   if   (dateFirst   ==   null   ){
                mixDate=dateLast;
                  }else   if   (dateLast   ==   null   ){
                mixDate=dateFirst;
                  }else{
                        calFirst.setTime(dateFirst);
                  calLast.setTime(dateLast);
                  if   (calFirst.before(calLast)){
                  mixDate=dateFirst;
                  }else{
                  mixDate=dateLast;
                  }
                  }
                return     mixDate;
                  }

------解决方案--------------------
Date有一个before(Date d)和一个after(Date d)函数,就是用来比较日期大小的。
------解决方案--------------------
long diff = dateFirst.getTime() - dateLast.getTime();
if(diff < 0){
}else if(diff==0){
}else{
}
------解决方案--------------------
if (startdate.compareTo(enddate) > 0)

startdate enddate为两个日期。。
------解决方案--------------------
private java.util.Date dateCompareToMix(java.util.Date dateFirst,java.util.Date dateLast) {
dateFirst = dateFirst == null? new java.util.Date():dateFirst;
return dateLast==null?dateFirst:(dateFirst.before(dateLast)?dateFirst:dateLast)
}