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 :

[Strategie] Nombre de jours se chevauchant entre 2 fois 2 dates [Sources]


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut [Strategie] Nombre de jours se chevauchant entre 2 fois 2 dates
    Bonjour tout le monde,

    Ma question relève peut-être un peu du rêve, mais je vous la pose au cas où, histoire de ne pas passer à coté d'une solution simple.

    Dans mon application j'ai un arret maladie qui a une date début et une date fin, et je voudrais à partir d'une fourchette comprise entre 2 dates, savoir pendant combien de jours l'arrêt maladie est-il compris dans la fourchette.

    voici un exemple :

    un arrêt maladie commence le 05/01/2006 et finit le 10/01/2006.
    la fourchette saisie va du 06/01/2006 au 20/01/2006
    => l'appli doit me retourner 5 car du 06 au 10 inclus, l'arrêt est bien dans la fourchette saisie.

    il faudrait une méthode qui prenne 4 dates en paramètre et qui renvoye un int en fait, alors bon j'essaye de la coder, mais c'est assez lourd, c'est pour ca que je me demandais si cela n'existe pas déjà..

    merci pour votre aide !

  2. #2
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    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
     
    public int fonction(
            Date debutFourchette,
            Date finFourchette,
            Date debutMaladie,
            Date finMaladie) {
            long joursMin = Math.max(debutFourchette.getTime(), debutMaladie.getTime());
            long joursMax = Math.min(finFourchette.getTime(), finMaladie.getTime());
            Calendar calendrierMin = Calendar.getInstance();
            calendrierMin.setTime(new Date(joursMin));
            Calendar calendrierMax = Calendar.getInstance();
            calendrierMax.setTime(new Date(joursMax));
            int dateMin = calendrierMin.get(Calendar.DAY_OF_YEAR);
            int dateMax = calendrierMax.get(Calendar.DAY_OF_YEAR);
            // seulement si les jours sont dans la meme annee
            return dateMax - dateMin;
        }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    décidemment tu as solution à tout g_rare !

    mais le problème c'est que je dois pouvoir prendre en compte les dates sur plusieures années.

    je suis en train d'essayer de faire la méthode là...

  4. #4
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    Citation Envoyé par vallica
    mais le problème c'est que je dois pouvoir prendre en compte les dates sur plusieures années.
    encore mieux (car sur plusieurs années)...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public int fonction(
            Date debutFourchette,
            Date finFourchette,
            Date debutMaladie,
            Date finMaladie) {
            long joursMin = Math.max(debutFourchette.getTime(), debutMaladie.getTime());
            long joursMax = Math.min(finFourchette.getTime(), finMaladie.getTime());
            long unJour = 24 * 60 * 60 * 1000; // en ms
            return (int) Math.ceil((double) (joursMax - joursMin) / unJour);
        }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    ca marche du tonnerre, vraiment là tu m'a donné un super coup de main !

    encore merci

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

Discussions similaires

  1. [VxiR2] Calcul du nombre de jours par mois entre deux date
    Par trabelsi dans le forum Designer
    Réponses: 4
    Dernier message: 02/10/2017, 15h17
  2. [XL-2003] Compter le nombre de jours par mois entre deux dates
    Par Mikayel dans le forum Excel
    Réponses: 8
    Dernier message: 23/09/2016, 13h36
  3. Calcul du nombre de jours non ouvrés entre deux dates
    Par allweneed dans le forum Oracle
    Réponses: 6
    Dernier message: 27/04/2010, 17h34
  4. [AC-2007] Calcul du nombre de jours par mois entre deux dates
    Par arouxy dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/01/2010, 08h34
  5. Réponses: 6
    Dernier message: 12/01/2008, 18h21

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