By Using SQL :
DECLARE @DT Date
SET @DT=GETDATE()
--Select DATEPART(WEEK,@DT)
Select * FROM (
SELECT DATEPART(WEEK,@DT)Week,@DT Date,'TODAY' Remarks
UNION
Select DATEPART(WEEK,DATEADD(dd,datediff(dd, @DT, dateadd(month, -1, @DT))-DAY(@DT)+1,@DT)),DATEADD(dd,datediff(dd, @DT, dateadd(month, -1, @DT))-DAY(@DT)+1,@DT), 'FIRST DATE OF PREVIOUS MONTH'
UNION
Select DATEPART(WEEK,DATEADD(dd,-DAY(@DT),@DT)),DATEADD(dd,-DAY(@DT),@DT)Date , 'LAST DATE OF PREVIOUS MONTH' Remarks
UNION
Select DATEPART(WEEK,DATEADD(dd,-DAY(@DT)+1,@DT)),DATEADD(dd,-DAY(@DT)+1,@DT)Date , 'FIRST DATE OF CURRENT MONTH' Remarks
UNION
Select DATEPART(WEEK,DATEADD(dd,datediff(dd, @DT, dateadd(month, 1, @DT))-DAY(@DT),@DT)),DATEADD(dd,datediff(dd, @DT, dateadd(month, 1, @DT))-DAY(@DT),@DT), 'LAST DATE OF CURRENT MONTH'
)x
Order BY Date
OUTPUT:
