Utilizzando Calendar
è possibile ottenere facilmente una data di 10 anni e una data di 20 anni dalla data corrente.
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, -10);
Date d1 = calendar.getTime();
calendar.add(Calendar.YEAR, -10);
Date d2 = calendar.getTime();
Come si utilizza Java 8 è possibile utilizzare anche LocalDate
LocalDate currentDate = LocalDate.now();
Date d1 = Date.from(currentDate.minusYears(10).atStartOfDay(ZoneId.systemDefault()).toInstant());
Date d2 = Date.from(currentDate.minusYears(20).atStartOfDay(ZoneId.systemDefault()).toInstant());
per il confronto è possibile utilizzare i date.after()
e date.before()
metodi come hai detto.
if(date.after(d1) && date.before(d2)){ //date is the Date instance that wants to be compared
////
}
I before()
e after()
metodi sono implementati in Calendar
e LocalDate
troppo. È possibile utilizzare tali metodi in tali istanze senza convertirsi in istanze java.util.Date
.
fonte
2015-12-01 07:30:36
Io non sono sicuro al 100% su questo (mai usato Data prima/dopo), ma hai provato a confronto con una data inizializzato ad oggi , quindi impostare altre due date rispetto a questo (10 anni e 20 anni prima), quindi utilizzare tali metodi? – Foleosy
ecco una buona lettura: http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html – Stultuske
http://stackoverflow.com/questions/883060/how-can-i- determinare-se-una-data-è-tra-due-date-in-java – Stefan