Subject: How to find week number of a date within a month
Code that I am using to get the week number
Dx := StatusinDate;
AYear:= @Year(@Date(Dx));
wd:=@Weekday(Dx);
mon:= @If(wd=1;2-wd-7;2-wd);
D := @Date(@Adjust ( @Date ( Dx ) ; 0 ; 0 ; mon ; 0 ; 0 ; 0 ));
FirstOfYear := @Date(@Year(D); 1; 1);
LastOfYear := @Date(@Year(D); 12; 31);
FirstDayNum := @Weekday(FirstOfYear);
LastDayNum := @Weekday(LastOfYear);
ISOFirstDayNum := @If(FirstDayNum = 1; 7; FirstDayNum - 1);
ISOLastDayNum := @If(LastDayNum = 1; 7; LastDayNum - 1);
IsFirstWeek := 7 - ISOFirstDayNum > 2;
IsLastWeek := 7 - ISOLastDayNum < 4;
ISOFirstDay := @If(IsFirstWeek;
@Adjust(FirstOfYear; 0; 0; 1 - ISOFirstDayNum; 0; 0; 0);
@Adjust(FirstOfYear; 0; 0; 8 - ISOFirstDayNum; 0; 0; 0));
ISOLastDay := @If(IsLastWeek;
@Adjust(LastOfYear; 0; 0; 7 - ISOLastDayNum; 0; 0; 0);
@Adjust(LastOfYear; 0; 0; -ISOLastDayNum; 0; 0; 0));
FirstWeekNextYear := @If(D > ISOLastDay; @Return(@Integer(1)); NULL);
LastWeekLastYear := (D - @Adjust(FirstOfYear; -1; 0; 0; 0; 0; 0))/60/60/24/7;
AdjustLastWeek := 1 - (LastWeekLastYear - @Integer(LastWeekLastYear));
@Set(“LastWeekLastYear”; LastWeekLastYear + AdjustLastWeek);
@If(D < ISOFirstDay;
@Return(@Integer(LastWeekLastYear)); NULL);
NumWeeks := (D - ISOFirstDay)/60/60/24/7;
WeekAdjust := 1 - (NumWeeks - @Integer(NumWeeks));
ISOWeekNum := NumWeeks + WeekAdjust;
Result := ISOWeekNum;
@Text(AYear)+“-” + @Right(“0” + @Text(Result);2)