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

Java Discussion :

Différence entre deux dates


Sujet :

Java

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut Différence entre deux dates
    Bonjour,

    J'ai une application avec deux dates et je cherche à calculer la différence entre ces deux dates en nombre de mois.
    J'ai fait un truc sauf que cela fonctionne pas si les années sont différentes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Calendar calDate1 = Calendar.getInstance();
    Calendar calDate2 = Calendar.getInstance();
    int nbMois = calDate2.get(Calendar.MONTH) - calDate1.get(Calendar.MONTH);
    Merci de votre aide

  2. #2
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    oui c'est normal car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calDate2.get(Calendar.MONTH)
    te renvoi le numéro du mois de l'année par exemple pour aujourd'hui 5 (juin)
    mais juin 2015 et juin 2014 c'est pareil donc tu dois faire un différentiel des années
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int nbAnnees = calDate2.get(Calendar.YEAR) - calDate1.get(Calendar.YEAR);
    et le multiplier par 12 et l'ajouter au différentiel des mois
    bon courage
    Développeur Java
    Site Web

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Sa ne va pas ce que tu dis. Par exemple, si je met 01/06/2015 en date1 et 01/01/2016 en date2
    Sa devrait me donner 7 mois, or cela va me donner 17 mois avec ce que tu m'as dis

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Sinon en java8 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    long month = Period.between(
    				LocalDate.of(2015, Month.JUNE, 1), 
    				LocalDate.of(2016, Month.JANUARY, 1)
    				).toTotalMonths();
    		System.err.println("Month = "+month);
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Ok et dans les parenthèses, je peut directement placer mes valeurs date1 et date2 ou il faut que je les décompose comme icic

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Non il y'a plusieurs autres moyens, c'est pas les exemples et le javadoc qui manquent
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Citation Envoyé par totot Voir le message
    Sa ne va pas ce que tu dis. Par exemple, si je met 01/06/2015 en date1 et 01/01/2016 en date2
    Sa devrait me donner 7 mois, or cela va me donner 17 mois avec ce que tu m'as dis
    Envoi ton code qui bug je vais te le corriger

    Car chez moi ca marche parce que :
    • 2016 - 2015 = 1 donc 1*12=12
    • 1-6=-5 donc 12-5=7


    Mais peut-être que ton compilo est bourré

    Et wax78 a raison essaie d'adopter l'API Date&Time de java8
    Développeur Java
    Site Web

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Finalement sa fonctionne ta solution kevinternet

  9. #9
    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
    Après il faut se demander s'il y a un mois entre le 31 Janvier et le 1er Février. La manière à base de Period Java 1.8 dit que non (il n'y a qu'un jour). Le calcul proposé au début dit que oui (les deux dates ne sont pas dans le même mois).
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/07/2006, 14h04
  2. Nombre de minutes de différence entre deux dates
    Par Oberown dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 05/05/2006, 15h41
  3. Différence entre deux dates
    Par Azharis dans le forum Access
    Réponses: 3
    Dernier message: 11/01/2006, 10h58
  4. Différence entre deux dates
    Par pittzz dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2005, 12h24
  5. Comment obtenir la différence entre deux dates ?
    Par jbat dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2005, 09h34

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