Code : Tout sélectionner
Procedure DateOfWeek(pYear,pMonth,pDay,Array week(1))
; pYear --> année ex: 2017
; pMonth --> mois 1 à 12
; pDay --> jour
; 0 : Dimanche
; 1 : Lundi
; 2 : Mardi
; 3 : Mercredi
; 4 : Jeudi
; 5 : Vendredi
; 6 : Samedi
; week() --> Tableau d'entier à 5 dimensions ou seront
; stockées les semaines Note: week(4) sera égal à -1 si
; pas de 5ème semaine
Protected FirstDayOfMonth
FirstDayOfMonth=Date(pYear,pMonth,1,0,0,0)
While DayOfWeek(FirstDayOfMonth)<>pDay
FirstDayOfMonth=AddDate(FirstDayOfMonth,#PB_Date_Day,1)
Wend
week(0)=FirstDayOfMonth
FirstDayOfMonth=AddDate(FirstDayOfMonth,#PB_Date_Day,7)
week(1)=FirstDayOfMonth
FirstDayOfMonth=AddDate(FirstDayOfMonth,#PB_Date_Day,7)
week(2)=FirstDayOfMonth
FirstDayOfMonth=AddDate(FirstDayOfMonth,#PB_Date_Day,7)
week(3)=FirstDayOfMonth
FirstDayOfMonth=AddDate(FirstDayOfMonth,#PB_Date_Day,7)
If Month(FirstDayOfMonth)=pMonth
week(4)=FirstDayOfMonth
Else
week(4)=-1
EndIf
EndProcedure
Define Dim myWeek(5),i
DateOfWeek(2017,7,5,myWeek())
For i=0 To 4
If myWeek(i)<>-1
Debug FormatDate("%dd-%mm-%yyyy",myWeek(i))
EndIf
Next