Calcul de jour ouvrables (dates) [algo java] - Java - Programmation
MarshPosté le 26-08-2005 à 14:15:11
Salut!
J'ai écrit la methode suivante qui permet d'ajouter ou de retrancher un nombre de jours ouvrables à une date(sans tenir compte des jours fériés).
Code :
publicstatic Date dateAddIgnoreWeekEnd(Date aDate, int nbDay) {
GregorianCalendar eD = new GregorianCalendar();
eD.setTime(aDate);
int offset = 1;
int offsetSunday = 1;
int offsetSaturday = 2;
if (nbDay < 0) {
offset = -1;
offsetSunday = -2;
offsetSaturday = -1;
}
for (int i = 1; i <= Math.abs(nbDay); i++) {
eD.add(GregorianCalendar.DATE, offset);
if (eD.get(eD.DAY_OF_WEEK) == eD.SATURDAY) {
eD.add(GregorianCalendar.DATE, offsetSaturday);
} elseif (eD.get(eD.DAY_OF_WEEK) == eD.SUNDAY) {
eD.add(GregorianCalendar.DATE, offsetSunday);
}
}
return eD.getTime();
}
Et bon, je n'aime pas ce code. Est-il possible d'éviter l'itération (for i...)? Je me suis pris la tête un moment avec des divisions entières et des modulos, mais sans grand succès...
Marsh Posté le 26-08-2005 à 14:15:11
Salut!
J'ai écrit la methode suivante qui permet d'ajouter ou de retrancher un nombre de jours ouvrables à une date(sans tenir compte des jours fériés).
Et bon, je n'aime pas ce code. Est-il possible d'éviter l'itération (for i...)?
Je me suis pris la tête un moment avec des divisions entières et des modulos, mais sans grand succès...