4

2 つの異なる日付期間を比較したいのですが、2 つの日付期間が同じかどうかに関係なくこれを行いますか? これどうやってするの?

  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 は 1 つの日付範囲であり、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として返すため、次のようになります。

 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 に答える