Recently there is a need to calculate the week, looked at the online ready-made code, not very appropriate, had to do it himself.
By default, the first Monday of the year is the beginning of the first week.
' Calculates the start date of the first week of a year
function FirstDay (inputyear)
For I=cdate (inputyear& " -1-1") to CDate (inputyear& "-1-7")
If weekday (i) =2 then
Firstday=i
Exit For
End If
Next
End Function
' Calculates the function of the first week of the year in which the input date is
Function Calcweekno (inputdate)
Toyear=year (Inputdate)
Fday=firstday (Toyear)
If DateDiff ("D", fday,inputdate) <0 Then
Fday=firstday (TOYEAR-1)
End If
' Calcweekno=fday
Daynum=datediff ("D", Fday,inputdate)
Calcweekno=int (DAYNUM/7) +1
End Function
' Calculates the first day of the week, based on the number of weeks and years
function Getfst (inputyear,weekno)
Fday=firstday (Inputyear)
Getfst=dateadd ("D", (weekno-1) *7,fday)
End Function