IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

calculer la différence entre deux dates en excluant les weekends


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut calculer la différence entre deux dates en excluant les weekends
    Bonjour à tous,

    je souhaiterai avoir la différences entre deux dates en jours mais en excluant les weekends, j'arrive à calculer le nombre de jours mais il compte le weekends avec , dans groegian calandar on trouve pas une fonction qui fait cette opération?si oui est ce que je peux avoir un exemple svp.
    j'ai cherché beaucoup sur internet mais il y a énormément de postes qui traitent le calcul entre deux dates mais j'en ai pas trouvé qui s'occupe ce problème en excluant les weekends et les jours fériés.

    merci d'avance pour vos réponses.
    cordialement,

  2. #2
    Membre averti Avatar de ZnhaarX
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 146
    Points : 307
    Points
    307
    Par défaut
    Salut,

    Bah même si tu n'as pas de méthodes tu l'implémentes toi même.
    Tu fixes une date de début et une date de fin.
    Tu fais une boucle qui compte le nombre de jour entre ces deux dates (incrémentation d'un compteur) en vérifiant si il s'agit d'un jour particulier (samedi et dimanche) dans quel cas tu n'incrémentes plus ton compteur.
    Exemple de code que j'ai trouvé:
    http://www.simplyshareit.net/post-53...-holidays.html

    Et pour les jours fériés, tu fais une List<Date> des jours fériés dans l'année (ou sur plusieurs années) et tu vérifies qu'ils ne sont pas présents dans ton intervalle (DateDébut - DateFin).

    Tu n'as plus qu'à adapter tout ça et ça devrait être bon

    Bonne chance !
    « War is peace. Freedom is slavery. Ignorance is strength. » - George Orwell

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    salut ZnhaarX merci pour ta réponse rapide je vais voir le lien que tu m'as donnée

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Points : 276
    Points
    276
    Par défaut
    Bonjour,

    Attention, pour les jours fériés français, une grande partie sont fixe (Noël, jour de l'an, 1e mai, 8 mai, 14 juillet, 15aout, 1e novembre, 11 novembre) et peuvent donc être inscrit de manière permanente dans le programme.

    Par contre, les jours, comme le lundi de pâques, le lundi de pentecôte, et le jeudi de l'ascension sont variables mais dépendent toutes de la date du dimanche de pâques qui est calculables : Calcul du dimanche de Paques

    lundi de paques = dimanche de paques + 1 jour
    ascension = dimanche de paques + 40 jours
    lundi de pentecote = dimanche de paques + 51 jours ou lundi de paques + 50 jours

    Pour info, quand j'avais fait un programme dans le même genre j'avais utilisé l'algorithme de Oudin. (un peu tordu, mais fiable)
    MigouW

    La seule bataille perdue d'avance est celle que l'on refuse de livrer.


    Pensez au tag
    Ma réponse vous a été utile, votez plus 1 sur le message.
    Ma réponse est hors sujet, votez moins 1 sur le message.

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    j'ai créer une fonction qui me permettait de bien calculer le nombre de jour entre deux dates sans weekends et jours fériés, sauf que il y a les erreurs de calculs lorsque j’essaie par exemple la différence entre 27/03/2011 ET 28/03/2001
    il m'affiche 0jour je pense que ça vient de changement d'horaire.
    si quelqu'un trouve la solution je suis preneur voilà le code:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
     
    import java.util.*;
     
     
     
    public class testFerie {
     
    	private static class Ferie
    	{
    		private static Vector<Date> joursFeries = new Vector<Date>() ;
    		private static int a,b,c,d,e,f,g,h,i,k,l,m,n,p;
     
    		private static Date getDimanchePaques(int year)
    		{
    			a = year%19;
    			b = year/100;
    			c = year%100;
    			d = b/4;
    			e = b%4;
    			f = (b+8)/25;
    			g = (b-f+1)/3;
    			h = (19*a+b-d-g+15)%30;
    			i = c/4;
    			k = c%4;
    			l = (32+2*e+2*i-h-k)%7;
    			m = (a+11*h+22*l)/451;
    			n = (h+l-7*m+114)/31;
    			p = (h+l-7*m+114)%31;
    			GregorianCalendar c = new GregorianCalendar() ;
    			c.set(c.get(Calendar.YEAR),n-1, p+1,0,0,0);
    			return c.getTime() ;
    		} 
     
    		public static void init()
    		{
    			joursFeries.removeAllElements() ;
    			GregorianCalendar c = new GregorianCalendar();
    			// 1er Janvier
    			c.set(c.get(Calendar.YEAR),0,1,0,0,0) ;
    			joursFeries.add(c.getTime());
    			// 1er mai
    			c.set(c.get(Calendar.YEAR),4,1,0,0,0) ;
    			joursFeries.add(c.getTime());
    			// 8 mai
    			c.set(c.get(Calendar.YEAR),4,8,0,0,0) ;
    			joursFeries.add(c.getTime());
    			// 14 juillet
    			c.set(c.get(Calendar.YEAR),6,14,0,0,0) ;
    			joursFeries.add(c.getTime());
    			// 15 aout assomption
    			c.set(c.get(Calendar.YEAR),7,15,0,0,0) ;
    			joursFeries.add(c.getTime());
    			// 1er novembre toussaint
    			c.set(c.get(Calendar.YEAR),10,1,0,0,0) ;
    			joursFeries.add(c.getTime());
    			// 11 novembre
    			c.set(c.get(Calendar.YEAR),10,11,0,0,0) ;
    			joursFeries.add(c.getTime());
    			// 25 decembre noel
    			c.set(c.get(Calendar.YEAR),25,11,0,0,0) ;
    			joursFeries.add(c.getTime());
    			Date dimanchePaques = getDimanchePaques(c.get(Calendar.YEAR));
    			// lundi de paques
    			joursFeries.add(new Date(dimanchePaques.getTime()+(24*60*60*1000)));
    			// jeudi de l'ascension
    			joursFeries.add(new Date(dimanchePaques.getTime()+(24*60*60*1000*39)));
    			// lundi de pentecote
    			joursFeries.add(new Date(dimanchePaques.getTime()+(24*60*60*1000*50)));		
    		}
     
    		public static boolean isFerie(Date date)
    		{
    			init() ;
    			boolean cont = true ;
    			for(int i=0;i<joursFeries.size() && cont;i++)
    				if(joursFeries.get(i).toString().equals(date.toString()))
    					cont = false ;
    			return !cont ;	
    		}
    	}
     
    	private static boolean isWE(Date date)
    	{
    		GregorianCalendar cal = new GregorianCalendar() ;
    		cal.setFirstDayOfWeek(Calendar.MONDAY) ;
    		cal.setTime(date) ;
    		int jour = cal.get(Calendar.DAY_OF_WEEK) ; 
    		return (jour==Calendar.SATURDAY || jour==Calendar.SUNDAY) ;
    	}
     
    	private static int calcul(Date debut, Date fin)
    	{
    		int nb = 0;
    		long finl = fin.getTime() ;
    		long debutl = debut.getTime() ;
    		long duree = (finl - debutl) / 1000 / 60 / 60 / 24 ;
    		System.out.println("duree="+duree) ;
    		for (long i = 0; i<= duree; i++)
    		{
    			Date d = new Date(debut.getTime()+(24*60*60*1000)*i) ;
    			System.out.print(d+" ; ");
    			boolean we = isWE(d) ;
    			boolean ferie = Ferie.isFerie(d) ;
    			if(!(we||ferie))
    			{
    				nb += 1 ;
    				System.out.println("IN");
    			}
    			else
    				System.out.println("OUT");
    		}
    		return nb ;
    	}
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		GregorianCalendar c = new GregorianCalendar();
    		c.set(2011,2,28,0,0,0) ;
    		Date debut = c.getTime() ;
    		c.set(2011,2,28,0,0,0) ;
    		Date fin = c.getTime() ;
    		int duree = calcul(debut, fin) ;
    		System.out.println("Duree = "+duree+"j");
     
    	}
     
    }

    cordialement,

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    À mon avis, il ne faut pas passer par la différence en millisecondes.

    Il faut partir du premier Calendrier, et lui ajouter un jour jusqu'à ce que sa Date atteigne la Date du second calendrier. Chaque fois qu'on fait ça, vérifier si on arrive sur un week-end ou jour férié, et si oui, ne pas le compter.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    je suis pas expert et j'ai pas analysé le code en détail (qui m'a l'air inutilement compliqué) mais entre le 28 février 2011 et le 28 février 2011, il y a effectivement 0 jours .

    Ceci dit:

    tout votre code manipule des Date, c'est Mal. Comme on vous l'a dit, construise un Calendar et utiliser le Calendar. Les objets Date sont beaucoup plus dur à comparer.

    Donc en gros

    1) créer le Calendar de base
    2) boucle "ajouter un jour".
    2*) si Day of week dans weekend (attention, dans certains payx weekend = dimanche-lundi et dans d'autre vendredi-samedi!) ou si dayofweek férié -> ne pas incrémenter le compteur jours

  8. #8
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    salut merci pour vos réponse et pour mon application de demande de congé entre le 28 et 28 il y a la journée de 28 si l'employé souhaite prendre seulement cette journée donc il faut que je gère cette partie .
    enfaite le problème venait de calcul. maintenant tout marche.
    merci.
    voilà le code si quelqu'un est intéressé.
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
     
    import java.util.*;
     
     
     
    public class testFerie {
     
          private static class Ferie
          {
                private static Vector<Date> joursFeries = new Vector<Date>() ;
                private static int a,b,c,d,e,f,g,h,i,k,l,m,n,p;
     
                private static Date getDimanchePaques(int year)
                {
                      a = year%19;
                      b = year/100;
                      c = year%100;
                      d = b/4;
                      e = b%4;
                      f = (b+8)/25;
                      g = (b-f+1)/3;
                      h = (19*a+b-d-g+15)%30;
                      i = c/4;
                      k = c%4;
                      l = (32+2*e+2*i-h-k)%7;
                      m = (a+11*h+22*l)/451;
                      n = (h+l-7*m+114)/31;
                      p = (h+l-7*m+114)%31;
                      Calendar c = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
     
                      c.set(c.get(Calendar.YEAR),n-1, p+1,0,0,0);
                      return c.getTime() ;
                } 
     
                public static void init()
                {
                      joursFeries.removeAllElements() ;
                      Calendar c = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
                      int year = c.get(Calendar.YEAR) ;
                      // 1er Janvier
                      c.set(year,0,1,0,0,0) ;
                      joursFeries.add(c.getTime());
                      // 1er mai
                      c.set(year,4,1,0,0,0) ;
                      joursFeries.add(c.getTime());
                      // 8 mai
                      c.set(year,4,8,0,0,0) ;
                      joursFeries.add(c.getTime());
                      // 14 juillet
                      c.set(year,6,14,0,0,0) ;
                      joursFeries.add(c.getTime());
                      // 15 aout assomption
                      c.set(year,7,15,0,0,0) ;
                      joursFeries.add(c.getTime());
                      // 1er novembre toussaint
                      c.set(year,10,1,0,0,0) ;
                      joursFeries.add(c.getTime());
                      // 11 novembre
                      c.set(year,10,11,0,0,0) ;
                      joursFeries.add(c.getTime());
                      // 25 decembre noel
                      c.set(year,25,11,0,0,0) ;
                      joursFeries.add(c.getTime());
                      Date dimanchePaques = getDimanchePaques(year);
                      // lundi de paques
                      long t = (24*60*60*1000) ;
                      joursFeries.add(new Date(dimanchePaques.getTime()+ t));
                      // jeudi de l'ascension
                      long t2 = 39 * t ;
                      joursFeries.add(new Date(dimanchePaques.getTime()+ t2));
                      // lundi de pentecote
                      long t3 = 50 * t ;
                      joursFeries.add(new Date(dimanchePaques.getTime()+ t3));         
                }
     
                public static boolean isFerie(Date date)
                {
                      init() ;
                      boolean cont = true ;
                      for(int i=0;i<joursFeries.size() && cont;i++)
                            if(joursFeries.get(i).toString().equals(date.toString()))
                                 cont = false ;
                      return !cont ;    
                }
          }
     
          private static boolean isWE(Date date)
          {
        	  Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
                cal.setFirstDayOfWeek(Calendar.MONDAY) ;
                cal.setTime(date) ;
                int jour = cal.get(Calendar.DAY_OF_WEEK) ; 
                return (jour==Calendar.SATURDAY || jour==Calendar.SUNDAY) ;
          }
     
          private static int calcul(Date debut, Date fin)
          {
                int nb = 0;
                long finl = fin.getTime() ;
                long debutl = debut.getTime() ;
                long duree = (finl - debutl) / 1000 / 60 / 60 / 24 ;
                System.out.println("duree="+duree) ;
                for (long i = 0; i<= duree; i++)
                {
                      Date d = new Date(debut.getTime()+(24*60*60*1000)*i) ;
                      if(d.getHours()==1)
                            d = new Date(d.getTime()-60*60*1000) ;
     
                      System.out.print(d+" ; ");
     
                      boolean we = isWE(d) ;
                      boolean ferie = Ferie.isFerie(d) ;
                      if(!(we||ferie))
                      {
                            nb += 1 ;
                            System.out.println("IN");
                      }
                      else
                            System.out.println("OUT");
                }
                return nb ;
          }
     
          /**
          * @param args
          */
          public static void main(String[] args) {
        	  Calendar c = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
                c.set(2011,5,15,0,0,0) ;
                Date debut = c.getTime() ;
                Calendar c2 = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
                c2.set(2011,5,20,0,0,0) ;
                Date fin = c2.getTime() ;
                int duree = calcul(debut, fin) ;
                System.out.println("Duree = "+duree+"j");
     
          }
     
    }

  9. #9
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    j'ai enlevé le résolu car après avoir fait beaucoup de tests hier, j'ai remarqué que le programme ne fonctionne pas correctement et que il voit pas certains weekends donc il ne les compte avec les jours de la semaine et j'avoue je sais pas pourquoi il fait ça.
    donc j'ai changé et j'ai fait comme on m'as proposé de faire une boucle et compter les jours voila le code
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    import java.util.*;
     
     
    public class calJourSemaine {
     
    	 private static Vector<Date> joursFeries = new Vector<Date>() ;
    	 private static int a,b,c,d,e,f,g,h,i,k,l,m,n,p;
        // holiday list
        static{
        	 joursFeries.removeAllElements() ;
             Calendar  c =Calendar.getInstance(TimeZone.getTimeZone("GMT"));
             int year = c.get(Calendar.YEAR) ;
             // 1er Janvier
             c.set(year,0,1,0,0,0) ;
             joursFeries.add(c.getTime());
             // 1er mai
             c.set(year,4,1,0,0,0) ;
             joursFeries.add(c.getTime());
             // 8 mai
             c.set(year,4,8,0,0,0) ;
             joursFeries.add(c.getTime());
             // 14 juillet
             c.set(year,6,14,0,0,0) ;
             joursFeries.add(c.getTime());
             // 15 aout assomption
             c.set(year,7,15,0,0,0) ;
             joursFeries.add(c.getTime());
             // 1er novembre toussaint
             c.set(year,10,1,0,0,0) ;
             joursFeries.add(c.getTime());
             // 11 novembre
             c.set(year,10,11,0,0,0) ;
             joursFeries.add(c.getTime());
             // 25 decembre noel
             c.set(year,25,11,0,0,0) ;
             joursFeries.add(c.getTime());
             Date dimanchePaques = getDimanchePaques(year);
             // lundi de paques
             long t = (24*60*60*1000) ;
             joursFeries.add(new Date(dimanchePaques.getTime()+ t));
             // jeudi de l'ascension
             long t2 = 39 * t ;
             joursFeries.add(new Date(dimanchePaques.getTime()+ t2));
             // lundi de pentecote
             long t3 = 50 * t ;
             joursFeries.add(new Date(dimanchePaques.getTime()+ t3)); 
        }
        private static Date getDimanchePaques(int year)
        {
              a = year%19;
              b = year/100;
              c = year%100;
              d = b/4;
              e = b%4;
              f = (b+8)/25;
              g = (b-f+1)/3;
              h = (19*a+b-d-g+15)%30;
              i = c/4;
              k = c%4;
              l = (32+2*e+2*i-h-k)%7;
              m = (a+11*h+22*l)/451;
              n = (h+l-7*m+114)/31;
              p = (h+l-7*m+114)%31;
              Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     
              c.set(c.get(Calendar.YEAR),n-1, p+1,0,0,0);
              return c.getTime() ;
        } 
     
        public static void main(String args[]){
     
        	 Calendar  cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
             cal.set(2011,6,15,0,0,0) ;
              Date debut = cal.getTime() ;
             cal.set(2011,6,18,0,0,0) ;
              Date fin = cal.getTime() ;
            Date dayCounter = debut;
            int counter = 1;
     
            while(dayCounter.before(fin)){
     
                // check for weekends and holiday list
                if(dayCounter.getDay() != Calendar.SATURDAY && dayCounter.getDay()!=Calendar.SUNDAY && !joursFeries.contains(dayCounter))
                {
                    counter++; // count weekdays
     
                }
                dayCounter.setDate(dayCounter.getDate()+1);
            }
     
            System.out.println("Working days = "+counter);
     
        }
    }
    mais ça ne marche pas il ne compte pas de tout les weekends ni les jours fériés de dimanche de Paque.
    pourriez vous me dire ou j'avais faux? car je suis bloqué la.
    merci d'avance.
    cordialement,

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ne manipulez pas des objets Date, manipulez des Calendar! Date.getDay() est déprécié et il y a de bonnes raisons à ça.

    Naivement:

    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
    18
    import static java.util.Calendar.*;
    //....
    Calendar debut = ....
    Calendar fin = .....
    // mettre debut et fin à 00:00:00.000 au niveau des heures
    int count=0;
    while (debut.before(fin)){
        int day = debut.get(DAY_OF_WEEK)
        if (day!=SATURDAY && day!=SUNDAY && !isHoliday(debut))
            counter++;
        debut.add(DAY_OF_WEEK,1);
    }
    //....
    public boolean isHoliday(Calendar day){
        if (day.get(DAY_OF_MONTH)==1 && day.get(MONTH) == JANUARY)
          return true;
        // etc + les truc compliqués pour paques ;)
    }

  11. #11
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    je vous remercie pour votre réponse je vais essayer en utilisant votre code.

    merci.

  12. #12
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    j'ai essayé de tester votre code mais ça me retourne toujours 0
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    import java.util.*;
     
     
    public class calJourSemaine {
     
     
        public static boolean isHoliday(Calendar day){
    	    if (day.get(Calendar.DAY_OF_MONTH)==1 && day.get(Calendar.MONTH) == Calendar.JANUARY)
    	      return true;
    	    // etc + les truc compliqués pour paques ;)
     
    	}
     
        public static void main(String args[]){
     
     
        	Calendar debut =Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     
        	Calendar fin =Calendar.getInstance(TimeZone.getTimeZone("GMT"));
        	debut.set(2011,0,1,0,0,0) ;
        	fin.set(2011,0,4,0,0,0) ;
        	// mettre debut et fin à 00:00:00.000 au niveau des heures
        	int counter=0;
        	while (debut.before(fin)){
        	    int day = debut.get(Calendar.DAY_OF_WEEK);
        	    if (day!=Calendar.SATURDAY && day!=Calendar.SUNDAY && !isHoliday(debut))
        	    { counter++;}
        	    debut.add(Calendar.DAY_OF_WEEK,1);
     
        	}
     
        	  System.out.println("Working days = "+counter);
        }
        }
    cordialement,

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pourriez vous donner votre code? La vous avez recopié la base que je vous aie donné, code qui ne compielra pas puisque isHoliday n'est pas complet.

  14. #14
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    voilà mon code et j'ai toujours 0 dans le nombre de jour:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
     
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import java.util.TimeZone;
    import java.util.Vector;
     
     
    public class DateDifferent{
     
    	 private static Vector<Date> joursFeries = new Vector<Date>() ;
         private static int a,b,c,d,e,f,g,h,i,k,l,m,n,p;
     
         static{
        	 joursFeries.removeAllElements() ;
         Calendar  c =Calendar.getInstance(TimeZone.getTimeZone("GMT"));
         int year = c.get(Calendar.YEAR) ;
         // 1er Janvier
         c.set(year,0,1,0,0,0) ;
         joursFeries.add(c.getTime());
         // 1er mai
         c.set(year,4,1,0,0,0) ;
         joursFeries.add(c.getTime());
         // 8 mai
         c.set(year,4,8,0,0,0) ;
         joursFeries.add(c.getTime());
         // 14 juillet
         c.set(year,6,14,0,0,0) ;
         joursFeries.add(c.getTime());
         // 15 aout assomption
         c.set(year,7,15,0,0,0) ;
         joursFeries.add(c.getTime());
         // 1er novembre toussaint
         c.set(year,10,1,0,0,0) ;
         joursFeries.add(c.getTime());
         // 11 novembre
         c.set(year,10,11,0,0,0) ;
         joursFeries.add(c.getTime());
         // 25 decembre noel
         c.set(year,25,11,0,0,0) ;
         joursFeries.add(c.getTime());
         Date dimanchePaques = getDimanchePaques(year);
         // lundi de paques
         long t = (24*60*60*1000) ;
         joursFeries.add(new Date(dimanchePaques.getTime()+ t));
         // jeudi de l'ascension
         long t2 = 39 * t ;
         joursFeries.add(new Date(dimanchePaques.getTime()+ t2));
         // lundi de pentecote
         long t3 = 50 * t ;
         joursFeries.add(new Date(dimanchePaques.getTime()+ t3));  
         }
         private static Date getDimanchePaques(int year)
         {
               a = year%19;
               b = year/100;
               c = year%100;
               d = b/4;
               e = b%4;
               f = (b+8)/25;
               g = (b-f+1)/3;
               h = (19*a+b-d-g+15)%30;
               i = c/4;
               k = c%4;
               l = (32+2*e+2*i-h-k)%7;
               m = (a+11*h+22*l)/451;
               n = (h+l-7*m+114)/31;
               p = (h+l-7*m+114)%31;
               Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     
               c.set(c.get(Calendar.YEAR),n-1, p+1,0,0,0);
               return c.getTime() ;
         } 
     
     
     
     
     
        public static int nbJours(Calendar startDate, Calendar endDate) {  
        	  Calendar date = (Calendar) startDate.clone();  
        	  int daysBetween = 0;  
        	  int day = date.get(Calendar.DAY_OF_WEEK);
        	  while (date.before(endDate)) {  
        		  if(day != Calendar.SATURDAY && day != Calendar.SUNDAY && !joursFeries.contains(day))
        			  {daysBetween++;}
        	    date.add(Calendar.DAY_OF_MONTH, 1);  
     
        	  }  
        	  return daysBetween;  
        	}  
     
        public static void main(String args[]){
     
        	Calendar  c = Calendar.getInstance();
        	Calendar  c2 = Calendar.getInstance();
            c.set(2011,2,26,0,0,0) ;
            c.getTime();
           // c.set(2011,5,10,0,0,0) ;
     
           c2.set(2011,2,29,0,0,0) ;
           c2.getTime();
           // c.set(2011,5,19,0,0,0) ;
     
            int duree = nbJours(c, c2) ;
            System.out.println("Duree = "+duree+"j");
     
        }
    }
    cordialement,

  15. #15
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int day = date.get(Calendar.DAY_OF_WEEK);
    doit se trouver dans le while, sinon tu compare toujours le même jour (dans le cas présent samedi).

    Aussi, votre vecteur jours feries dois contenir des calendar, et c'est le Calendar "date" que vous devez chercher dedans. Assurez vous que tout ce qui dépend des heures/minutes/secondes/millisecondes soit bien à la meme valeur entre votre Vector de joursFeries et votre Calendar qui avance d'un jour à la fois.

  16. #16
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    voila en utilisant votre exemple tchize_ ça marche pour les weekends et les jours fériés fixe(j'avoue que j'ai pas cherché plus loin hier et je m'excuse pour ça)
    voilà le code
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    import java.text.SimpleDateFormat;
    import java.util.*;
     
     
    public class DateDifferent {
     
    	private static int a,b,c,d,e,f,g,h,i,k,l,m,n,p;
    	static SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.FRANCE);
     
     
    	public static String dateToString(Date date) {
            return sdf.format(date);
     
        }
        public static boolean isHoliday(Calendar day){
        	 int year = day.get(Calendar.YEAR) ;
    	    if (day.get(Calendar.DAY_OF_MONTH)==1 && day.get(Calendar.MONTH) == Calendar.JANUARY)
    	      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==1 && day.get(Calendar.MONTH) == Calendar.MAY)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==8 && day.get(Calendar.MONTH) == Calendar.MAY)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==8 && day.get(Calendar.MONTH) == Calendar.MAY)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==14 && day.get(Calendar.MONTH) == Calendar.JULY)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==15 && day.get(Calendar.MONTH) == Calendar.AUGUST)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==1 && day.get(Calendar.MONTH) == Calendar.NOVEMBER)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==11 && day.get(Calendar.MONTH) == Calendar.NOVEMBER)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==25 && day.get(Calendar.MONTH) == Calendar.DECEMBER)
    		      return true;
    	    Date dimanchePaques = getDimanchePaques(year);
    	    long t = (24*60*60*1000) ;
    	    if(day.get(Calendar.DAY_OF_MONTH)==  dimanchePaques.getTime()+t)
    	    	return true;
     
     
    		return false;
     
    	}
        private static Date getDimanchePaques(int year)
        {
              a =  (year%19);
              b =  (year/100);
              c =  (year%100);
              d = b/4;
              e = b%4;
              f = (b+8)/25;
              g = (b-f+1)/3;
              h = (19*a+b-d-g+15)%30;
              i = c/4;
              k = c%4;
              l = (32+2*e+2*i-h-k)%7;
              m = (a+11*h+22*l)/451;
              n = (h+l-7*m+114)/31;
              p = (h+l-7*m+114)%31;
              Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     
              c.set(c.get(Calendar.YEAR),n-1, p+1,0,0,0);
              return c.getTime() ;
        } 
     
        public static void main(String args[]){
     
     
        	Calendar debut =Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     
        	Calendar fin =Calendar.getInstance(TimeZone.getTimeZone("GMT"));
        	debut.set(2011,3,22,0,0,0) ;
        	fin.set(2011,3,27,0,0,0) ;
        	// mettre debut et fin à 00:00:00.000 au niveau des heures
        	int comp=0;
        	while (debut.before(fin)){
        	    int day = debut.get(Calendar.DAY_OF_WEEK);
        	    if (day!=Calendar.SATURDAY && day!=Calendar.SUNDAY && !isHoliday(debut))
        	    { comp++;
                System.out.println("IN");
                }
                else
                      System.out.println("OUT");
     
        	    debut.add(Calendar.DAY_OF_WEEK,1);
     
        	}
     
        	  System.out.println( "Working days = "+comp);
        }
        }
    j'ai deux questions:
    - est ce qu'il y a moyen que la date de fin soit inclue dans le compter car il compte jusqu'à jour -1???
    -j'ai une fonction qui calcule la dimanche de pâque, et j’essaie d'utiliser cette fonction pour calculer les jours fériés relié au pâques mais ça ne les enlève pas. est est vous avez des idées pourquoi?

    en vous remerciant d'avance,
    cordialement.

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    1) ben oui, suffit de changer la condition sur votre boucle :/
    2) oui parce que vous bidouillez bizarrement une Date au lieu d'utiliser un Calendar.

  18. #18
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    pouvez vous me donner un exemple de comment faire pour le dimanche de pâques car je vois pas comment faire autrement que ce que j'ai fais.

    pour la première question je m'excuse elle était un peu bête.

    cordialement,

  19. #19
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    comme ça vite fait:

    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
    18
    19
    20
    21
    22
    23
    24
         private static Calendar getDimanchePaques(Calendar reference)
         {
               int year = reference.get(Calendar.YEAR);
               a = year%19;
               b = year/100;
               c = year%100;
               d = b/4;
               e = b%4;
               f = (b+8)/25;
               g = (b-f+1)/3;
               h = (19*a+b-d-g+15)%30;
               i = c/4;
               k = c%4;
               l = (32+2*e+2*i-h-k)%7;
               m = (a+11*h+22*l)/451;
               n = (h+l-7*m+114)/31;
               p = (h+l-7*m+114)%31;
               Calendar c = (Calendar)reference.clone();
               c.set(Calendar.MONTH, n-1);
               c.set(Calendar.DAY_OF_MONTH,p+1);
               // juste pour etre sur
               System.out.println("paques est le "+c);
               return c;
         }

  20. #20
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    voilà merci à tous ça marche maintenant.
    je laisse le code si ça peut aider quelqu'un.
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    import java.text.SimpleDateFormat;
    import java.util.*;
     
    import com.sun.xml.internal.bind.v2.runtime.RuntimeUtil.ToStringAdapter;
     
     
    public class DateDifferent {
     
    	private static int a,b,c,d,e,f,g,h,i,k,l,m,n,p;
    	static SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.FRANCE);
     
     
    	public static String dateToString(Date date) {
            return sdf.format(date);
     
        }
        public static boolean isHoliday(Calendar day){
        	 int year = day.get(Calendar.YEAR) ;
        	 Calendar dimanchePaques = getDimanchePaques(year);
        	 dimanchePaques.add(Calendar.DATE,1);
     
    	    if (day.get(Calendar.DAY_OF_MONTH)==1 && day.get(Calendar.MONTH) == Calendar.JANUARY)
    	      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==1 && day.get(Calendar.MONTH) == Calendar.MAY)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==8 && day.get(Calendar.MONTH) == Calendar.MAY)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==8 && day.get(Calendar.MONTH) == Calendar.MAY)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==14 && day.get(Calendar.MONTH) == Calendar.JULY)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==15 && day.get(Calendar.MONTH) == Calendar.AUGUST)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==1 && day.get(Calendar.MONTH) == Calendar.NOVEMBER)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==11 && day.get(Calendar.MONTH) == Calendar.NOVEMBER)
    		      return true;
    	    if (day.get(Calendar.DAY_OF_MONTH)==25 && day.get(Calendar.MONTH) == Calendar.DECEMBER)
    		      return true;
    	    if(day.get(Calendar.DAY_OF_MONTH)== dimanchePaques.get(Calendar.DATE))
    	    	return true;
    	    dimanchePaques.add(Calendar.DATE,38);
    	    if(day.get(Calendar.DAY_OF_MONTH)== dimanchePaques.get(Calendar.DATE))
    	    	return true;
    	    dimanchePaques.add(Calendar.DATE,11);
    	    if(day.get(Calendar.DAY_OF_MONTH)== dimanchePaques.get(Calendar.DATE))
    	    	return true;
     
    		return false;
     
    	}
     
        private static Calendar getDimanchePaques(int year)
        {
        	Calendar reference = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
              year = reference.get(Calendar.YEAR);
              a = year%19;
              b = year/100;
              c = year%100;
              d = b/4;
              e = b%4;
              f = (b+8)/25;
              g = (b-f+1)/3;
              h = (19*a+b-d-g+15)%30;
              i = c/4;
              k = c%4;
              l = (32+2*e+2*i-h-k)%7;
              m = (a+11*h+22*l)/451;
              n = (h+l-7*m+114)/31;
              p = (h+l-7*m+114)%31;
              Calendar c = (Calendar)reference.clone();
              c.set(Calendar.MONTH, n-1);
              c.set(Calendar.DAY_OF_MONTH,p+1);
     
             // System.out.println("paques est le "+c);
              return c;
        }
     
     
        public static void main(String args[]){
     
     
        	Calendar debut =Calendar.getInstance(TimeZone.getTimeZone("GMT"));
     
        	Calendar fin =Calendar.getInstance(TimeZone.getTimeZone("GMT"));
        	debut.set(2011,2,27,0,0,0) ;
     
        	fin.set(2011,2,29,0,0,0) ;
        	// mettre debut et fin à 00:00:00.000 au niveau des heures
        	int comp=0;
        	while (debut.before(fin)){
        	    int day = debut.get(Calendar.DAY_OF_WEEK);
        	  System.out.println(debut);
        	    if (day!=Calendar.SATURDAY && day!=Calendar.SUNDAY && !isHoliday(debut))
        	    { comp++;
                System.out.println("IN");
                }
                else
                      System.out.println("OUT");
     
        	    debut.add(Calendar.DAY_OF_WEEK,1);
     
        	}
     
        	  System.out.println( "Working days = "+comp);
        }
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] calculer la différence entre deux dates en minutes
    Par sarah12 dans le forum IHM
    Réponses: 5
    Dernier message: 20/07/2010, 15h44
  2. Calculer une différence entre deux dates
    Par attif0709 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/04/2010, 12h06
  3. [AC-2003] Calcul de différence entre deux dates : problème de format
    Par sinifroth dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/01/2010, 15h35
  4. Calcul de différence entre deux dates cas vaut 0
    Par zanoubya dans le forum Débuter
    Réponses: 3
    Dernier message: 25/12/2008, 19h45
  5. Calculer la différence entre deux dates
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/12/2007, 08h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo