Nombre de jours ouvrés entre deux dates

Nombre de jours ouvrés entre deux dates - Java - Programmation

Marsh Posté le 17-06-2009 à 18:39:48    

Bonjour,
 
je souhaite développez une petite fonction permettant de calculer le nombre de jours ouvrés entre deux dates.
cependant les dates seront très courtes (5 jours maxi).
ce que j'aimerais si c'est possible c'est d'incrémenter au fur et à mesure la date et de vérifier si il s'agit d'un jours ouvré ou pas.
 
Ex :
 
du 15 au 21 juin 2009
15 = lundi on incrémente le compteur
16 = mardi on incrémente le compteur
17 = mercredi = on incrémente le compteur
18 = jeudi on incrémente un compteur
19 = vendredi on incrémente le compteur
20 = samedi on incrémente PAS
21 = dimanche on incrémente PAS
 
Est ce possible ?
 
Le code que j'ai actuellement calcule uniquement le nombre de jours total :

Code :
  1. Calendar calendar1 = new GregorianCalendar();
  2. calendar1.set(Calendar.YEAR, 2006);
  3. calendar1.set(Calendar.MONTH, 4);
  4. calendar1.set(Calendar.DAY_OF_MONTH, 1);
  5. Date date1 = calendar1.getTime();
  6. //  2006-08-15
  7. Calendar calendar2 = new GregorianCalendar();
  8. calendar2.set(Calendar.YEAR, 2006);
  9. calendar2.set(Calendar.MONTH, 8);
  10. calendar2.set(Calendar.DAY_OF_MONTH, 15);
  11. Date date2 = calendar2.getTime();
  12. // Différence
  13. long diff = Math.abs(date2.getTime() - date1.getTime());
  14. long numberOfDay = (long)diff/CONST_DURATION_OF_DAY;
  15. System.err.println("Le nombre de jour est : " + numberOfDay);

Reply

Marsh Posté le 17-06-2009 à 18:39:48   

Reply

Marsh Posté le 17-06-2009 à 23:10:19    

pour ce qui cherche :
 

Code :
  1. int retard = 0;
  2.         // Date de retour prévu
  3.         Calendar calendar1 = new GregorianCalendar();
  4.         calendar1.set(Calendar.YEAR, 2009);
  5.         calendar1.set(Calendar.MONTH, 5);
  6.         calendar1.set(Calendar.DAY_OF_MONTH, 15);
  7.         Date date1 = calendar1.getTime();
  8.         //  Date du jour
  9.         Calendar calendar2 = new GregorianCalendar();
  10.         Date date2 = calendar2.getTime();
  11.         calendar2.setTime(date2);
  12.         // Différence
  13.         long diff = Math.abs(date2.getTime() - date1.getTime());
  14.         long numberOfDay = (long)diff/86400000;
  15.         if(numberOfDay != 0){
  16.              for(int i=1;i<=numberOfDay;i++){
  17.                  if(calendar1.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY && calendar1.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY)
  18.                     retard++;
  19.                  calendar1.add(Calendar.DAY_OF_MONTH, 1);
  20.              }
  21.         }
  22.         System.out.println("Nombre de jours de retard : " + retard);

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed