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

Windows Forms Discussion :

[VB.NET 2.0] gestion week-end et jour ferriés


Sujet :

Windows Forms

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut [VB.NET 2.0] gestion week-end et jour ferriés
    bonjour,

    a partir de la date myDate, je voudrais connaitre la date du prochain jour qui n'est pas férrier ou qui ne fait pas parti du week-end

    ex :
    si je rentre 14/12/2006 (c'est un jeudi) => ça doit me renvoyer 15/12/2006 (vendredi)
    si je rentre 15/12/2006 (vendredi) => ça doit me renvoyer 15/12/2006 (lundi)
    si je rentre 14/08/2006 (lundi) => ça doit me renvoyer 16/08/2006 (mercredi car le 15/08/2006 est ferrié)

    comment faire ? y a t-il des fonctions predéfinies qui identifies les jours ferrié et week-end ?

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Je ne suis pas sûr qu'il y ait une notion des jours fériers dans dotnet

    Pour ce qui est de renvoyer la prochaine date qui ne fasse pas partie du Week End, il faut que tu l'implémentes. C'est pas compliqué du tout. Si le numéro de la semain est entre 0 et 3 (ou 1 et 4 je sais plus), tu fais +1 à la date. Sinon, tu fais le calcule pour compter le nombre de jours à rajouter pour arriver à lundi.

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    je verrais pour les jours ferriers plus tard...

    je fais comment si je veux ajouter plus des 7 jours ?

  4. #4
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Citation Envoyé par Emcy
    je verrais pour les jours ferriers plus tard...

    je fais comment si je veux ajouter plus des 7 jours ?
    Pourquoi voudrais-tu ajouter plus de 7 jours ?
    Tu peux considérer les vacances scolaires, de pâques, etc comme des jours férier.

    En gros pour pouvoir gérer les jours fériers, il faudrait faire une logique du style :

    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
    DateTime ObtenirProchainJour(DateTime maDateCourante)
    {
       DateTime MaNouvelleDate = maDateCourante;
       if (maDateCourante.DayOfWeek == DayOfWeek.Monday
       || maDateCourante.DayOfWeek == DayOfWeek.Tuesday
       || maDateCourante.DayOfWeek == DayOfWeek.Wednesday
       || maDateCourante.DayOfWeek == DayOfWeek.Thursday)
       {
          MaNouvelleDate = MaNouvelleDate.AddDays(1);
       }
       else
       {
          int NumeroJour = 0;
          switch (maDateCourante.DayOfWeek)
          {
          case DayOfWeek.Friday: NumeroJour = 4; break;
          case DayOfWeek.Saturday: NumeroJour = 5; break;
          case DayOfWeek.Sunday: NumeroJour = 6; break;
          }
          MaNouvelleDate = MaNouvelleDate.AddDays(7 - NumeroJour);
       }
     
       //Boucle qui parcourt un tableau qui contien les jours fériers
       //Si la date calculée est contenue dans ce tableau
       //on fait ObtenirProchainJour(MaNouvelleDate);
     
       return MaNouvelleDate;
    }

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    personne n'a deja créé un fonction qui renvoie une collection contenant les jours fériés qu'il y a entre deux dates ?
    le plus dure, c'est de trouver paque...

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    en m'inspirant de Goldar, j'ai créer cette fonction :


    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
     
    private listJoursFériés As New ArrayList()
     
    private sub AjoutJours (maDate As DateTime, DayNbr As Integer)					
    While DayNbr > 0
     
       If (maDate.DayOfWeek = 0) Or (maDate.DayOfWeek = 6) Then
             listJoursWeekEnd.Add (maDate)
       Else
    	 For Each Elm As DateTime In listJoursFériés
    	     If DateTime.Compare(maDate, Elm) = 0 Then
    	             listJoursWeekEnd.Add (maDate)
    		     maDate.AddDays(1)
    		     Exit For
    	     End If
     
    	     maDate.AddDays(1)
    	     DayNbr -= 1
      	 Next Elm										
        End If												
    End While
    end sub
    => il n'y a pas une methode plus rapide ? c'est quand même super lent...


    ausii, pour cette ligne :
    If DateTime.Compare(maDate, Elm) = 0 Then
    => si l'heure de maDate n'est pas de minuit, je risque d'avoir des probleme sur l'egalité, non ?

Discussions similaires

  1. [AC-2007] Exclure les Week-ends et jours fériés
    Par foxatout dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/04/2012, 10h12
  2. Réponses: 1
    Dernier message: 05/02/2008, 14h36
  3. [VB.NET] appli de gestion d'une ligne d'assemblage ?
    Par apoingsfermes dans le forum ASP.NET
    Réponses: 6
    Dernier message: 15/02/2006, 08h12
  4. [Delphi.Net] probleme de gestion de deux pages
    Par nivet dans le forum Delphi .NET
    Réponses: 4
    Dernier message: 17/06/2005, 14h12
  5. [VB.NET]La bonne gestion des forms
    Par Wintermute dans le forum Windows Forms
    Réponses: 11
    Dernier message: 13/01/2004, 16h35

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