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

avec Java Discussion :

Supprimer des jours de JCalendar


Sujet :

avec Java

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Par défaut Supprimer des jours de JCalendar
    Salut,

    J'ai développé une application qui fait la gestion de congés et dans cette application, j'ai besoin de supprimer des jours comme le week-end et les jours fériés. J'ai utilisé un JCalendar pour utilisatrice entre la durée de congé et le programme calcule la durée de congés en éliminant les week-ends et les jours fériés.

    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Quelle bibliothèque de JCalendar utilises-tu (Il y en a plusieurs : toedter, freixas, wannawork... Cependant, je ne crois pas qu'aucun que j'ai cité n'ait la possibilité de filtrer, de masquer, ou de modifier le rendu spécifiquement, et certainement encore moins de supprimer des jours.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Par défaut
    salut,

    j ai utilise jDateChooser mais moi je veux pas supprime les jour je veux que le masquer puisque lorsque je calcule le nomber de jour de congé ila masquer les weekend

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Ça ne me dit pas plus quelle bibliothèque tu utilises... donne-moi le lien de téléchargement au moins.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Par défaut
    jcalendar-1.4.jarNom : Sans titre.png
Affichages : 336
Taille : 3,2 Ko

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Le Toedter donc. De base, ça n'existe pas. Mais on doit pouvoir s'en sortir en ajout un IDateEvaluator spécifique, en implémentant isInvalid(Date) pour que ça renvoie false lorsque la date passée en paramètre est un jour de congé. Tu peux contrôler couleurs de rendu de ces boutons par getInvalidForegroundColor() et getInvalidBackroundColor(), et même le tooltip par getInvalidTooltip(), pour afficher par exemple éventuellement le nom du jour (la méthode est appelée immédiatement après le test, donc, en utilisant, malheureusement, une variable membre à état).

    Pour affecter l'instance, jcalendar.getDayChooser().addDateEvaluator(holidayDateEvaluator));, avec jcalendar, l'instance de JCalendar, et holidayDateEvaluator, l'instance de classe concrète qui implémente IDateEvaluator.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Par défaut
    merci
    tu peux donne un exemple pour mieux apprendre merci bcp

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Par exemple :

    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
    import java.awt.Color;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Date;
    import java.util.HashSet;
    import java.util.Set;
     
    import com.toedter.calendar.IDateEvaluator;
     
    public class HolidayDateEvaluator implements IDateEvaluator {
     
    	private static final String DEFAULT_HOLIDAY_TOOLTIP = "Jour de congé";
     
    	private final Set<Date> dates;
     
    	public HolidayDateEvaluator(Date[] dates) {
    		this(Arrays.asList(dates));
    	}
     
    	public HolidayDateEvaluator(Collection<Date> dates) {
    		this.dates = new HashSet<>(dates);
    	}
     
    	@Override
    	public boolean isInvalid(Date date) {
    		return this.dates.contains(date);
    	}
     
    	@Override
    	public Color getInvalidBackroundColor() {
    		return Color.RED; // la couleur de fond des jours de congés
    	}
     
    	@Override
    	public Color getInvalidForegroundColor() {
    		return Color.WHITE; // la couleur de texte des jours de congés
    	}
     
    	@Override
    	public String getInvalidTooltip() {
    		return DEFAULT_HOLIDAY_TOOLTIP;
    	}
     
    	@Override
    	public Color getSpecialBackroundColor() {
    		return null;
    	}
     
    	@Override
    	public Color getSpecialForegroundColor() {
    		return null;
    	}
     
    	@Override
    	public String getSpecialTooltip() {
    		return null;
    	}
     
    	@Override
    	public boolean isSpecial(Date date) {
    		return false;
    	}
     
    }
    Tout simplement.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Par défaut
    mais moi je fais ce travail dans une interface java voici mon code dans la buttons qui calcule le nombre de jour ce code marche bien mais il ne supprime ps les week and et les jour feries mercii
    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
     
     
    try{          
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
    String date1 = sdf.format(jDateChooser2.getDate());
    SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MM-yyyy");
    String date2 = sdf2.format(jDateChooser2.getDate());
               Class.forName("oracle.jdbc.driver.OracleDriver");
                Connection c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","aaaa" ,"bbbb");
             Statement stm = c.createStatement();
          stm.executeUpdate("insert into demande values (seqPax.NEXTVAL,to_date('"+date1+"'),to_date('"+date2+"'),'"+jTextArea1.getText()+"')");
     
     
      jTextField1.setText((jDateChooser2.getDate().getTime()-jDateChooser1.getDate().getTime())/(1001*60*60*24)+1 +"");
     
          } 
          catch (Exception ex) {
              ex.printStackTrace();
          }

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Je ne sais pas ce que c'est que ce code avec une requête SQL que tu me montres : quel rapport avec un JCalendar ?

    Tu dis que tu as calculé la liste des jours de congés : c'est une liste de Date n'est-ce pas (ou un tableau peu importe, ça fonctionne aussi avec la classe que je t'ai donnée) ? Et bien, quand tu construis ton JCalendar, tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JCalendar jdatechooser = new JCalendar();
    jdatechooser.getDayChooser().addDateEvaluator(new HolidayDateEvaluator(dateDeConges));
    ou dateDeConges est la liste de java.util.Date (ou java.sql.Date si tu veux). Cette liste étant remplie des dates que tu as calculées.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Par défaut
    desole ces le code dans mon button
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
    String date1 = sdf.format(jDateChooser1.getDate());
    SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MM-yyyy");
    String date2 = sdf2.format(jDateChooser2.getDate());
     
    jTextField1.setText((jDateChooser2.getDate().getTime()-jDateChooser1.getDate().getTime())/(1001*60*60*24)+1 +"");

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    D'accord, mais il est censé avoir quel rapport avec l'affichage d'un calendrier ton code de bouton ?
    C'est bien dans un JCalendar que tu veux pourvoir empêcher qu'on sélectionne des jours de congés ?
    Ou alors tu voudrais sélectionner une plage de dates, en calculer la différence, et en retirer la durée correspond aux jours de congés compris dans cette plage de dates (ce qui n'a strictement aucun rapport).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 21
    Par défaut
    oui exactement je veux que le client entre la date 1 et la date 2 et après il afficher seulement le nombre de jour et en retirer la durée de les week-end et les jour féries si il existe
    Nom : Sans titre.png
Affichages : 330
Taille : 38,1 Ko un exemple de mon interface merciiiii bcp

  14. #14
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Ok. Rien à voir avec JCalendar alors. Il te suffit de parcourir les jours entre les dates : pour chaque jour, tester s'il fait partie des congés ou week-end, et ne compter que ceux pour lesquels le test est faux. Pour ça tu peux utiliser la classe Calendar :

    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
    Date dateDebut = ...; // date de début de la période
    Date dateFin = ...; // date de fin de la période
    Set<Date> dateASupprimer = new HashSet<>(datesConges); // on mets les dates de congés dans un set (pour optimiser les tests)
     
    Calendar calendar = Calendar.getInstance(); // on prend une instance de Calendar pour parcourir les jours entre les 2 dates
    calendar.setTime(dateDebut);
     
    int nombreDeJours = 0; // pour stocker le compte de jours entre les deux datrs
    while ( calendar.getTime().before(dateFin) || calendar.getTime().equals(dateFin) ) { // tant qu'on a pas atteint la fin de la période, y compris le dernier jour
     
       if ( !dateASupprimer.contains(calendar.getTime()) && calendar.get(Calendar.DAY_OF_WEEK)!=Calendar.SUNDAY &&      calendar.get(Calendar.DAY_OF_WEEK)!=Calendar.SATURDAY ) { // si la date ne doit pas être supprimée
          nombreDeJours++; // on compte le jour
       }
       calendar.add(Calendar.DAY_OF_YEAR, 1); // on avance d'un jour
     
    }
     
    // ici nombreDeJours vaux le nombre de jours entre les dates, moins les jours de congés et week-end (dans mon test samedi et dimanche, mais tu peux modifier ça)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. [XL-2003] Supprimer des dates en fonction du jour puis effectuer un tri.
    Par graphikris dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/02/2013, 20h06
  2. Supprimer des données à trente jours
    Par Wise_Sherkaan dans le forum SQL
    Réponses: 9
    Dernier message: 28/09/2012, 15h01
  3. Supprimer des données quand la date est inférieur a X jour
    Par Syrisse dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/03/2011, 15h26
  4. Calcul des jours feriés
    Par obione dans le forum Langage
    Réponses: 5
    Dernier message: 07/11/2003, 13h36

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