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

VB.NET Discussion :

probleme de mois


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    septembre 2011
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : septembre 2011
    Messages : 76
    Points : 56
    Points
    56
    Par défaut probleme de mois
    Bonjour

    Suite a ceci, jai simplifié et pour avoir mon mois jai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mois = Trim(Str(CInt(semaine / 4)))
    mais avec ça la semaine 13 qui est normalement au mois d'avril viens au mois de mars (arrondie à l'entier le plus proche)
    et je sais pas comment régler
    quelqu un a t il une solution ?

    Merci de m'aider

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    novembre 2006
    Messages
    1 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 828
    Points : 4 188
    Points
    4 188
    Par défaut
    Bonjour,

    Dans le post que tu cites, BenoitM te donne la solution :

    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
    public DateTime GetLastOccurenceOfDay(DateTime value, DayOfWeek dayOfWeek)
    {
          int daysToAdd = dayOfWeek - value.DayOfWeek;
          if(daysToAdd < 1) 
          {
                daysToAdd -= 7;
          } 
          return value.AddDays(daysToAdd);
    }
     
    public DateTime GetFirstDayOfWeek(int year, int weekNumber, DayOfWeek dayOfWeek)
    {
          return GetLastOccurenceOfDay(new DateTime(year,1,1).AddDays(7*weekNumber), dayOfWeek);
    }
     
    public DateTime GetFirstDayOfWeek(int weekNumber)
    {
          return GetFirstDayOfWeek(DateTime.Today.Year,weekNumber, DayOfWeek.Monday);
    }
    bonne journée.

    EDIT : Fait gaffe car une semaine peut être à cheval sur 2 mois.
    tien se serait de bonne fonction à mettre dans la librairie Dvp.NET

  3. #3
    Membre du Club
    Inscrit en
    septembre 2011
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : septembre 2011
    Messages : 76
    Points : 56
    Points
    56
    Par défaut
    J'avais cette solution, cest pourquoi jai dis ue j avais simplifié je voulais juste savoir si il y avait un moyen aute mais merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour,
    je ne pense pas que l'on puisse simplifier si facilement :
    - il faut connaitre l'année, pour savoir si elle commence par la semaine 1 ou le reliquat de la semaine 52 de l'année qui la précède;
    - il faut définir un jour, sans quoi, comme le dit Sankasssss, certaines semaines sont à cheval sur deux mois et alors, lequel choisir?

    Par contre le code proposé ci dessus, semble provoquer un décalage d'une semaine, pour les années commençant par le reliquat de la semaine 52 de l'année précédente (exemple : 2011).
    De plus il respecte la culture "en-US", où le premier jour de la semaine est le dimanche.
    Si cela est quelque fois admis en France, la majorité des calendriers français par contre, commencent la semaine le lundi.

    Ci dessous la fonction modifiée :
    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
        Public Function GetDayOfWeek(ByVal year As Integer, ByVal weekNumber As Integer, ByVal dayWeek As DayOfWeek) As DateTime
     
            Dim value As DateTime = New DateTime(year, 1, 1).AddDays(7 * weekNumber)
     
            Dim daysToAdd As Integer
            If dayWeek = System.DayOfWeek.Sunday Then
                daysToAdd = 7 - value.DayOfWeek
            Else
                daysToAdd = dayWeek - value.DayOfWeek
            End If
     
            If New DateTime(value.Year, 1, 1).DayOfWeek < 5 Then
                daysToAdd -= (7)
            End If
     
            Return value.AddDays(daysToAdd)
     
        End Function
    Reste à tester plus amplement et en extraire le mois.

  5. #5
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    novembre 2006
    Messages
    1 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 828
    Points : 4 188
    Points
    4 188
    Par défaut
    Bonsoir à tous,

    suite à cette demande, notre bon tomlev l'a développé et mis dans la dll Dvp.net : http://projets.developpez.com/issues/1405

    Je mets à jour ici pour ceux que ça intéresserait...

    Et encore bravo à tomlev

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    novembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour à la Team, je suis également intéressé par cette fonction... je l'attend avec impatience. Merci encore au dev.

Discussions similaires

  1. un problem aide moi
    Par dima133 dans le forum Fortran
    Réponses: 1
    Dernier message: 27/04/2012, 09h03
  2. [XL-2003] Probleme de mois
    Par macduss dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/04/2009, 10h44
  3. [HTML] Le doctype ne cause que des problemes chez moi
    Par lysandre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 11/09/2007, 17h21
  4. [ACCESS] probleme Inversion Mois/Jours
    Par fredrider dans le forum Access
    Réponses: 10
    Dernier message: 26/06/2006, 18h37
  5. Un Grand Problem pour moi - Delphi & Anglais
    Par pierrefrench dans le forum EDI
    Réponses: 6
    Dernier message: 20/02/2006, 10h43

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