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] Obtenir une date à partir d'un numero de semaine


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 40
    Points : 29
    Points
    29
    Par défaut [VB.Net] Obtenir une date à partir d'un numero de semaine
    Bonjour à tous.

    Voila mon problème est dans le titre en fait !

    J'aimerais bien idéalement récupérer la date au lundi de la semaine en question (par exemple pour semaine 51 de 2006 -> 18/12/2006).

    Si vous avez des idées merci de m'en faire part !

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Salut !

    J'ai trouvé cette fonction avec un collègue. Ca a l'air de fonctionner :
    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
    Public Function LundiNumSem(ByVal an As Integer, ByVal numsem As Integer) As DateTime
            Dim premierLundi As DateTime = New DateTime(an, 1, 1)
            Dim nbJoursPremiereSemaine As Integer = 0
            Dim numSemainePremierLundi As Integer, resultat As DateTime
            While premierLundi.DayOfWeek <> DayOfWeek.Monday
                premierLundi = premierLundi.AddDays(1)
                nbJoursPremiereSemaine = nbJoursPremiereSemaine + 1
            End While
            If nbJoursPremiereSemaine < 4 Then
                numSemainePremierLundi = 1
            Else
                numSemainePremierLundi = 2
            End If
            resultat = premierLundi.AddDays((numsem - numSemainePremierLundi) * 7)
            Return resultat
        End Function
    Si les spécialistes pouvaient confirmer!
    Merci !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    voici celle que j'utilise dans mon application:
    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
     
      'retourne le lundi de la semaine demandée
      Public Function semaineEnLundi(ByVal semaine As Integer, ByVal annee As Integer) As Date
        Dim d, l As Date
     
        d = New Date(annee, 1, 1)  ' 1er janvier
        Select Case d.DayOfWeek
          Case DayOfWeek.Friday
            l = d.AddDays(3)
          Case DayOfWeek.Saturday
            l = d.AddDays(2)
          Case DayOfWeek.Sunday
            l = d.AddDays(1)
          Case Else
            l = d.AddDays(1 - d.DayOfWeek)   ' lundi de la première semaine
        End Select
        Return l.AddDays(7 * (semaine - 1)) 'lundi de la semaine recherchée
     
      End Function

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Merci pour ta contribution !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    voici une solution plus courte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Public Function semaineEnLundi(ByVal semaine As Integer, ByVal annee As Integer) As Date
     
            Dim lundi As Date
            Dim j4 As New Date(annee, 1, 4)
            lundi = j4.AddDays((semaine - 1) * 7 - IIf(j4.DayOfWeek = 0, 6, j4.DayOfWeek - 1))
     
            Return lundi
        End Function

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

Discussions similaires

  1. [XL-2010] Obtenir une date en fonction du numéro de semaine
    Par Ska60 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/09/2022, 16h36
  2. [2008R2] Récupérer une date à partir d'un numéro de semaine et d'une année.
    Par ff.martin dans le forum Développement
    Réponses: 5
    Dernier message: 24/07/2014, 15h20
  3. Réponses: 9
    Dernier message: 21/07/2010, 08h43
  4. Recherche d'une date à partir du numéro de la semaine
    Par FMDCC dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/01/2010, 17h22
  5. Réponses: 6
    Dernier message: 25/09/2006, 14h51

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