4

我想比较两个不同的日期期间并且不管这两个日期期间是否相同都这样做?我怎样才能做到这一点?

  Date d1 = new Date();
  Date d2 = new Date();
  Date d3 = new Date();
  Date d4 = new Date();

假设上述所有日期都有不同的值,我想比较 d1、d2、d3 和 d4 之间的日期周期。即使它们代表相同的日期。这可能吗?

4

4 回答 4

2

您可以使用 compareTo 方法,如下所示,

import java.util.*; 

 public class Main {   
     public static void main(String args[]) 
     {        
           Date today=new Date();                    
           Date myDate=new Date(today.getYear(),today.getMonth()-1,today.getDay());
           System.out.println("My Date is"+myDate);    
           System.out.println("Today Date is"+today);
           if(today.compareTo(myDate)<0)
               System.out.println("Today Date is Lesser than my Date");
           else if(today.compareTo(myDate)>0)
               System.out.println("Today Date is Greater than my date"); 
           else
               System.out.println("Both Dates are equal");      
      }
   }
于 2012-04-23T12:54:30.780 回答
1

我理解你的问题的方式,d1-d2 是一个日期范围,d3-d4 是另一个,你想看看这些是否部分重叠。这个对吗?

在这种情况下,您可以检查以下内容:

if(
       (d1.before(d3) && d2.after(d3))
    || (d3.before(d2) && d4.after(d2))) {

}
于 2012-04-23T12:56:24.967 回答
0

d1.getTime() 将日期作为长返回,因此:

 long dif1 = d2.getTime() - d1.getTime();
 long dif2 = d4.getTime() - d3.getTIme();

 if (dif1 == dif2)
    thePeriodsAreEqual();
于 2012-04-23T12:55:33.803 回答
0

比较期间的日期...以修改 whealther 服务`

private boolean chDate(boolean brmv) {

   Date bdt = new Date(System.currentTimeMillis());
        bdt.setHours(0);``


   long time = bdt.getTime();


    long[] ttest=new long[5];
        ttest[0]=time+1000*60*60*0;
        ttest[1]=time+1000*60*60*8;
        ttest[2]=time+1000*60*60*13; 
        ttest[3]=time+1000*60*60*19;
        ttest[4]=time+1000*60*60*24;





        long dtmp = //heure à cherché;
        long la=System.currentTimeMillis();
    for(int i=0;i<4;i++)
        if(ttest[i]<la&&la<ttest[i+1])
            if((ttest[i]>dtmp||dtmp>ttest[i+1]))
                    brmv=true;


    return brmv;
}
于 2014-07-09T15:20:31.070 回答