Bonjour à tous !
Je crois que j'ai un gros problème avec les opérateurs booléens...
J'ai deux dates différentes, la première est inférieure à la deuxième et je souhaite calculer le nombre de calendriers mensuels que je dois afficher pour englober ces deux dates.
Je boucle donc jusqu'à ce que le mois ET l'année de ma première date soient identiques au mois et années de la seconde date. Dans la boucle j'incrémente uniquement le mois de la première date.
J'ai donc codé ceci :
Et là je lis : "Tant que les mois ne sont pas identiques ET que les années ne sont pas identiques on continue la boucle", sauf que dans la réalité j'observe que je sors de la boucle dès que l'une OU l'autre condition est remplie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 private static int computeNbCals(Date debut, Date fin) { Calendar calStart = GregorianCalendar.getInstance(); calStart.setTime(debut); Calendar calEnd = GregorianCalendar.getInstance(); calEnd.setTime(fin); int nbCals = 1; while((isNotSameMonth(calStart, calEnd) && isNotSameYear(calStart, calEnd))) { nbCals++; calStart.add(Calendar.MONTH, 1); } return nbCals; }
Si je remplace mon "&&" par "||", donc mon ET par un OU ça fonctionne correctement...
A quel endroit j'ai faux dans ma réflexion ?
Merci pour vos éclaircissements
Partager