VB.NET : obtenir une date à partir d'un N° de semaine

1 Septembre 2014 , Rédigé par Kyle Katarn Publié dans #VBNET

Objectif : à partir d'une chaine de caractères de type AASSJ, retrouver la date.

Ex : 1438V donne le jour 19/09/2014.

Voici le code (mercredi est codé Z)

Function getDateofWeek(ByVal AASSJ As String) As Date


 Dim date_cal As Date
 Dim sem As Integer
 Dim sem_AASSJ As Int16
 Dim tb_jour As String = "LMZJVSD"

 date_cal = Convert.ToDateTime("01/01/" & "20" & Mid(AASSJ, 1, 2))

 sem = 0
 sem_AASSJ = Convert.ToInt16(Mid(AASSJ, 3, 2)) 'donne en entier le N° de semaine

        While sem <> sem_AASSJ

           date_cal = date_cal.AddDays(1)

           sem = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(date_cal, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)

     End While

        'ici, date_cal contient la date du 1° jour de la semaine, toujours un lundi

        'Mid(AASSJ,5,1) donne le 5° caractère de la chaine, InStr donne la position du jour obtenu dans le tablea de réf tb_jour

        date_cal = date_cal.AddDays(InStr(tb_jour, Mid(AASSJ, 5, 1)) - 1)

        getDateofWeek = date_cal

    End Function

Partager cet article

Repost 0
Pour être informé des derniers articles, inscrivez vous :

Commenter cet article