我想比较两个不同的日期,并且无论两个日期是否相同,都要这样做?我怎样才能做到这一点?
Date d1 = new Date();
Date d2 = new Date();
Date d3 = new Date();
Date d4 = new Date();
假设上述所有日期都有不同的值,我想比较d1,d2,d3和d4之间的日期。即使他们代表相同的日期。这可能吗?
答案 0 :(得分: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");
}
}
答案 1 :(得分:1)
我理解你的问题的方式,d1-d2是一个日期范围,d3-d4是另一个日期范围,你希望看到这些是否部分重叠。这是对的吗?
在这种情况下,您可以检查以下内容:
if(
(d1.before(d3) && d2.after(d3))
|| (d3.before(d2) && d4.after(d2))) {
}
答案 2 :(得分:0)
d1.getTime()会将日期作为long返回,所以:
long dif1 = d2.getTime() - d1.getTime();
long dif2 = d4.getTime() - d3.getTIme();
if (dif1 == dif2)
thePeriodsAreEqual();
答案 3 :(得分:0)
比较期间的日期...修改风险服务“
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;
}