Bonjour à tous,

Je suis confronté à un problème sur la gestion des années bissextiles par Calendar. La problématique est la suivante: soient 2 dates, date1 et date2. Je dois déterminer que date2 est bien 5 ans après date1. Par exemple: si date1 vaut 31/03/2012, date2 doit valoir 30/03/2017. Pour cela, j'ai le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Date date1 = monObjetMetier.getDate1();
Date date2 = monObjetMetier.getDate2();
Calendar compare = Calendar.getInstance();
compare.setTime(date1);
compare.add(Calendar.YEAR, 5);
compare.add(Calendar.DAY_OF_YEAR, -1);
 
if (!DateUtils.isSameDay(compare.getTime(), date2)) {
        // ...
}
Le problème se pose quand date1 vaut 29/02/2012. Selon le code ci-dessus, date1 + 5 ans = 27/02/2017 alors qu'on devrait tomber sur le 28 février

Bien sûr, je pourrais ne pas soustraire 1 jour si date1 tombe un 29 février mais je préfèrerais avoir une solution plus propre Si l'un(e) d'entre vous à une quelconque idée, je suis preneur !

D'avance merci