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

VB.NET Discussion :

[VB.NET] Récupérer la date du lundi d'une semaine en fonction d'une date


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut [VB.NET] Récupérer la date du lundi d'une semaine en fonction d'une date
    Bonjour,

    J'ai trouvé ici :
    http://vb.developpez.com/faq/?page=Dates

    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
    Public Function PremierJourSemaine(ByVal numSemaine As Integer, ByVal annee As Integer) As Date
     
            Dim d As Date
            Dim numS As Integer
     
            ' premier jour de l'année 
            d = DateSerial(annee, 1, 1)
     
            ' numéro de la semaine du 1er janvier 
            numS = DatePart("ww", d, vbMonday, vbFirstFourDays)
     
            ' si le 1er janvier fait partie de la dernière semaine de l'année précédente 
            ' alors passe à la semaine suivante (la première de la nouvelle année) 
            If numS <> 1 Then d = DateAdd("d", 7, d)
     
            ' calcule le premier jour de la première semaine de l'année 
            d = DateAdd("d", 1 - Weekday(d, vbMonday), d)
     
            ' ajoute (numSemaine-1) semaines 
            PremierJourSemaine = DateAdd("ww", numSemaine - 1, d)
     
        End Function
    et je l'utilise ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
            Dim dateDuJour As String = Me.dateJ.Text
            Dim dateJ As Date = dateDuJour
            Dim numSemaine As Integer = DatePart("ww", dateJ, vbMonday, FirstWeekOfYear.FirstFourDays)
            Dim annee As Integer = Year(dateJ)
            Dim DateLundi As Date = PremierJourSemaine(numSemaine, annee)
     
            Me.date_lundi.Text = DateLundi
        End Sub
    Cependant j'obtient des valeurs incorrecte.

    Je voulais savoir si j'avais fait une erreur d'utilisation ou si la function PremierJourSemaine est incorrecte.

    J'ai effectué le test avec la date : 01/01/2010
    et j'obtient : 03/01/2011

    plutôt bizarre

    Je continue mes recherches pour trouvé un moyen de renvoyer la date du lundi de la semaine d'une date donnée.

    Si quelqu'un à une idée je suis preneur.

    ++

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    bonjour,

    bon voilà une solution que je viens de coder qui semble marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
            Dim dateDuJour As String = Me.dateJ.Text
            Dim dateJ As Date = dateDuJour
            Dim nom_du_jour As String = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames(CType(dateJ.DayOfWeek, Integer))
     
            While (nom_du_jour <> "lundi")
                dateJ = DateAdd("d", -1, dateJ)
                nom_du_jour = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames(CType(dateJ.DayOfWeek, Integer))
            End While
     
            date_lundi.Text = dateJ
        End Sub
    ++

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

Discussions similaires

  1. Récupérer la date du lundi de la semaine courante
    Par omar24 dans le forum Langage
    Réponses: 11
    Dernier message: 07/01/2022, 10h17
  2. Réponses: 3
    Dernier message: 17/10/2014, 11h14
  3. Réponses: 3
    Dernier message: 22/02/2012, 14h37
  4. Réponses: 12
    Dernier message: 02/08/2009, 13h18
  5. Date de Lundi de la semaine courante
    Par bonano dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 29/03/2007, 08h41

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