Hvordan sammenligner jeg mellomliggende datoer i Java?
Eksempel:
date1 er 22-02-2010
date2 er 07-04-2010
i dag
dato3 er 25-12-2010
.
date3
er alltid større enn date1
og date2
er alltid i dag. Hvordan sjekker jeg om dagens dato ligger mellom dato1 og dato3?
Date har metodene before og after og kan sammenlignes med hverandre på følgende måte:
if(todayDate.after(historyDate) && todayDate.before(futureDate)) {
// In between
}
For en inkluderende sammenligning:
if(!historyDate.after(todayDate) && !futureDate.before(todayDate)) {
/* historyDate <= todayDate <= futureDate */
}
Du kan også prøve Joda-Time, men vær oppmerksom på det:
Joda-Time er de facto standard dato- og klokkeslettbibliotek for Java før Java SE 8. Brukere blir nå bedt om å gå over til java.time (JSR-310).
Back-ports er tilgjengelige for Java 6 og 7 samt Android.
Sammenlign de to datoene:
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");