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

API standards et tierces Java Discussion :

recuperer les 6 derniers mois


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut recuperer les 6 derniers mois
    salut,

    J'ai deux dates, une from et une to. Ces deux dates sont entrées par un utilisateur, je veux intyerdire à mon utilistaur d'entrer des dates qui different de plus de six mois, pour cela je dois faire la difference entre ces deux dates et si la difference est superieure à 6 mois alors lancer une exception.
    je purrai recuperer les mopis de chaque date en faisant getMonth() sauf le pb c'est lorsque les années sont differentes.

    Quelqu'un aura une solution ?

    merci

  2. #2
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    avec cette methode difDates

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private static final int jourInMillisecs=86400000; //duree d'un jour en ms
    public static long difDates(Date date1,Date date2){
     
    	long a = date1.getTime()/jourInMillisecs;
    	long b = date2.getTime()/jourInMillisecs;
     
    	return (b - a);
    }
    et si la valeur retournee est superieure a 180, cela veut dire que cela fait plus de 6 mois.

  3. #3
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Euh ... ben un peu bof cette solution ...
    Je trouve plus propre de passer par un calendar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public boolean isDifferenceMoreThanNMonths(Date date1, Date date2, int n){
      if (date1==null || date2==null)
         throw new IllegalArgumentException("Dates to compare should not be null");
      if (date2.before(date1))
        return isDifferenceMoreThanSixMonths(date2,date1);
    GregorianCalendar calendar = new GregorianCalendar();
    calendar.setTime(date);
    calendar.add(Calendar.MONTH,-n);
    return date1.before(calendar.getTime());
    }

  4. #4
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Sinon la librairie Joda Time est apparemment (moi je ne l'ai jamais utilisée) faite pour effectuer ce genre de calcul très simplement ...

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    merci à tous mais comment tu definis isDifferenceMoreThanSixMonths ici ?

  6. #6
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    non à mon avis c'est un appel à la meme fonction ... pour pouvoir faire une soustraction propre ...

    je pense qu'il faut lire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return isDifferenceMoreThanNMonths(date2,date1,6);

  7. #7
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Ah oui désole j'ai mis un paramètre de plus après coup et oublié de le mettre partout ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public boolean isDifferenceMoreThanNMonths(Date date1, Date date2, int n){
      if (date1==null || date2==null)
         throw new IllegalArgumentException("Dates to compare should not be null");
      if (date2.before(date1))
        return isDifferenceMoreThanNMonths(date2,date1,n);
    GregorianCalendar calendar = new GregorianCalendar();
    calendar.setTime(date);
    calendar.add(Calendar.MONTH,-n);
    return date1.before(calendar.getTime());
    }
    comme le disait in ...

  8. #8
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Citation Envoyé par chtig
    Euh ... ben un peu bof cette solution ...
    Je trouve plus propre de passer par un calendar :
    Oui pourquoi faire simple quand on peut faire plus compliqué

    tu peux expliquer pourquoi c'est bof! ca m'interesse.

  9. #9
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    C'est ça que je trouve bof :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private static final int jourInMillisecs=86400000; //duree d'un jour en ms
    plus globalement le fait que pour moi c'est coder en C qqpart que de faire ça et pas en objet ....

  10. #10
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Citation Envoyé par chtig
    C'est ça que je trouve bof :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private static final int jourInMillisecs=86400000; //duree d'un jour en ms
    plus globalement le fait que pour moi c'est coder en C qqpart que de faire ça et pas en objet ....
    Ca peut tout a fait etre une propriete d'une classe OutilsDates (definie comme une constante) qui te donne le nombre de ms dans un jour(on peut eventuellement y mettre un getter et un setter quoique).
    Donc dans ce cas ca reste de la POO.

Discussions similaires

  1. [Dates] Récupérer les 6 derniers mois
    Par identifiant_bidon dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2007, 09h21
  2. recuperer les 3 derniers enregistrements
    Par flagodzki dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/09/2007, 17h17
  3. [MySQL 3.23.41]Requete qui affiche les 6 derniers mois
    Par nanarou dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/09/2006, 19h07
  4. [Requette] les 12 derniers mois seulement
    Par bob75000 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/07/2006, 13h48
  5. [simpleXML] XML : comment recuperer les x derniers objets?
    Par mozvillat dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 07/07/2006, 15h10

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