[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:
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:
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.
++