Partage
  • Partager sur Facebook
  • Partager sur Twitter

liste des dates entre deux dates

Sujet résolu
    4 mai 2010 à 11:10:11

    Bonjour

    J'ai besoin de récupérer les dimanches entre deux dates données.
    J'ai alors besoin de récupérer toutes les dates entre ces deux dates .

    SVP pourriez vous m'aider ?? :euh:
    • Partager sur Facebook
    • Partager sur Twitter
      4 mai 2010 à 11:22:19

      Hum je ne sais pas s'il existe un truc tout fait pour ce genre de chose dans calendar (je ne m'en suis jamais servi) mais si tu connais le jour de départ (mois et année compris) et la même chose pour la fin, tu dois pouvoir en déduire le nombre de dimanche assez facilement:

      Mettons que ta date de départ soit un 14/03/1987. Je suppose qu'avec calendar, tu peux savoir de quel jour il s'agit. A partir de là, tu détermines combien de jour il y avait jusqu'au dimanche, puis par tranche de 7 tu calcule le nombre de dimanche jusqu'au jour final. C'est un boucle toute bête.

      Il y a peut être un autre moyen, une méthode toute faite dans calendar ou équivalent. Va y jeter un oeil avant de mettre ça en place à mon avis ^^
      • Partager sur Facebook
      • Partager sur Twitter
        4 mai 2010 à 11:37:02

        merci pour votre réponse

        en fait je travaille avec Date sous cette format yyy-MM-dd
        je pourrais avoir le nombre du jour
        par exemple Date datedeb;
        int i=datedeb.getday();
        si i =0 alors c'est un dimanche
        je ne sais pas maintenant comment faire pour avoir la liste de toutes les dates entre deux dates données.

        SVP pourriez vous m'aider encore ?? :(
        • Partager sur Facebook
        • Partager sur Twitter
          4 mai 2010 à 11:45:04

          bonjour,

          c'est assez simple en fait.
          1) Tu trouve ton premier dimanche (grâce à getday()),
          2) Tu ajoute 7 jours à ta date
          3) tu regarde si tu est encore dans l'intervalle, si c'est le cas tu ajoute la date dans ta liste et tu recommence en 2)

          De mémoire Calendar est assez bien fait tu as tout ce qu'il te faut : comparaison de date, ajout d'un certain nombre de jours, ...
          • Partager sur Facebook
          • Partager sur Twitter
            4 mai 2010 à 11:49:19

            Et bien c'est ce que je te dis:
            commence par regarder dans la doc de calendar si y a pas déjà quelque chose qui ferait ça pour toi.
            Si c'est déjà fait et que ce n'est pas le cas, visiblement avec getdays, tu connais l'id du jour concerné. il te suffit alors de déterminer combien de jour sépare le concerné du premier dimanche qui suit, et d'avancer petit à petit jusqu'à la date butoir. J'en conviens, ça peut être long, et va falloir gérer les cas particuliers (incrémentation de mois, années bissextiles etc), mais ça devrait marcher.

            à la limite, il doit même pouvoir exister une simplification...Je ne connais pas le système Date de java, mais je sais qu'en c, il existe une fonction qui te permet d'obtenir le nombre de milliseconde écoulées depuis une date fixe t0 jusqu'à une date donnée. Tu fais ça pour Tinitiale et pour Tfinale, et tu connaitras le nombre de milliseconde entre les deux.

            A partir de là, tu reconvertis en jour et de là tu devrais pouvoir trouver le nombre de semaine, de mois, d'années etc
            • Partager sur Facebook
            • Partager sur Twitter
              4 mai 2010 à 11:53:44

              @Elrel : En effet c'est ce que tu disais !

              Mais par contre c'est encore plus simple car il existe des fonctions bien sympa :
              date.add(CALENDAR.DAY, 7) augmente la date de 7 jours et normalement ça gère les changements de mois et d'années !!!

              Et donc oui maintenant il reste plus qu'à lire la javadoc (ce que je n'ai pas vraiment fait)
              • Partager sur Facebook
              • Partager sur Twitter
                4 mai 2010 à 11:55:52

                Hum effectivement, que demande le peuple ^^
                Si java se met à tout faire pour nous maintenant, à quoi sert d'être programmeur...Le premier mec qui lit la doc peut tout faire...
                .......................................................
                Mais qu'est ce qu'on fait là! au boulot!
                lol

                bref, lit la doc de calendar ^^
                • Partager sur Facebook
                • Partager sur Twitter
                  5 mai 2010 à 2:01:23

                  grâce à vous et grâce à Calendar !
                  public int calculateSunSat(Integer idvacation) {
                  
                  		Vacation vacation = (Vacation) hibernateTemplate.get(Vacation.class,
                  				idvacation);
                  		
                  		Calendar from = this.asCalendar1(vacation.getIdvacation());
                  		Calendar to = this.asCalendar2(vacation.getIdvacation());
                  		
                  		int nbJoursOuvrables = 0;
                  		if (vacation.getEndDate()!=null)
                  		{
                  		for (Calendar c = (Calendar) from.clone(); c.compareTo(to) <= 0; c.add(
                  				Calendar.DATE, +1)) {
                  			int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
                  			if (dayOfWeek != Calendar.SATURDAY && dayOfWeek != Calendar.SUNDAY) {
                  				nbJoursOuvrables++;
                  			}
                  		}
                  		}
                  		System.out.println(nbJoursOuvrables);
                  		return nbJoursOuvrables;
                  		
                  	}
                  
                  public Calendar asCalendar1(Integer idvacation) {
                  		Vacation vacation = (Vacation) hibernateTemplate.get(Vacation.class,
                  				idvacation);
                  
                  		Calendar cal = Calendar.getInstance();
                  		cal.setTime(vacation.getStartDate());
                  		return cal;
                  	}
                  
                  	public Calendar asCalendar2(Integer idvacation) {
                  		Vacation vacation = (Vacation) hibernateTemplate.get(Vacation.class,
                  				idvacation);
                  
                  		Calendar cal = Calendar.getInstance();
                  		cal.setTime(vacation.getEndDate());
                  		return cal;
                  	}
                  

                  C'est un peu bète mais ça marche!
                  • Partager sur Facebook
                  • Partager sur Twitter

                  liste des dates entre deux dates

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown