Semaine du mois

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Semaine du mois

Message par microdevweb »

Pour un de mes projet j'ai besoins de connaître les semaines du mois, voici une procédure qui retourne dans un tableau les dites semaines

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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège