Voici le code suivant :
Ce code donne comme résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 GregorianCalendar gc = new GregorianCalendar(2007, Calendar.MARCH,1); // Je veux me positionner au dernier jour du mois précédent. gc.add(GregorianCalendar.DAY_OF_YEAR, -1); System.out.println(gc.getTime());
Mar 01 00:00:00 CET 2007
Etant donné que que GregorianCalendar gère directement des erreurs connues telles qu'un jour du mois invalide par rapport au calendrier Grégorien, je comprends que ma soustraction de 1 jour au 01/03/08 me donne le jour 29/02/2007 qui n'est donc pas correct.
Je pensais que GregorianCalendar réalisait la gestion des années bissextiles
J'ai donc formulé le code suivant pour obtenir un résultat correct.
Ce code donne comme résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 GregorianCalendar gc = new GregorianCalendar(2007, Calendar.MARCH,1); if((gc.get(GregorianCalendar.MONTH)==GregorianCalendar.MARCH) && (!gc.isLeapYear(gc.get(GregorianCalendar.YEAR)))) { gc.add(GregorianCalendar.DAY_OF_YEAR, -2); }else{ gc.add(GregorianCalendar.DAY_OF_YEAR, -1); }
Fev 28 00:00:00 CET 2007
Avez-vous, pensez-vous à une autre idée, concernant cette gestion d'année bissextile?
Merci
Partager