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:
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
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)) { // ... }
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 propreSi l'un(e) d'entre vous à une quelconque idée, je suis preneur !
D'avance merci
Partager