Hvordan sammenligner jeg datoer i mellem i Java?
Eksempel:
eksempel: date1 er 22-02-2010
date2 er 07-04-2010
i dag <br /&>
date3 er 25-12-2010
.
date3
er altid større end date1
, og date2
er altid i dag. Hvordan kan jeg kontrollere, om datoen i dag ligger mellem date1 og date3?
Dato har før og efter metoder og kan sammenlignes med hinanden på følgende måde:
if(todayDate.after(historyDate) && todayDate.before(futureDate)) {
// In between
}
For en inklusiv sammenligning:
if(!historyDate.after(todayDate) && !futureDate.before(todayDate)) {
/* historyDate <= todayDate <= futureDate */
}
Du kan også prøve med Joda-Time, men bemærk, at:
Joda-Time er de facto standardbiblioteket for dato og tid for Java før Java SE 8. Brugerne bliver nu bedt om at migrere til java.time (JSR-310).
Der findes back-ports til Java 6 og 7 samt Android.
Sammenlign de to datoer:
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");