assuming DATEFIRST is 7, I got this function - actually you can default datefirst = 7 for the lifetime of your query only - this seems to work according to by 1980 calendar
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION FiscalYearMonth
(
@DAT datetime
)
RETURNS int
AS
BEGIN
DECLARE @TAXY as int;
DECLARE @R as int;
SET @TAXY = YEAR(dateadd(month,-3,@dat));
DECLARE @TDAT as varchar(8)
SET @TDAT = CAST(@TAXY AS varchar(4)) + '0401';
SELECT @R = datediff(day, DATEADD(day , (8 - DATEPART(DW,@TDAT)) % 7,@TDAT), dateadd(day,14,@DAT)) / 7;
RETURN @R;
END
GO
e.g.
SET datefirst 7;
select dbo.FiscalYearMonth('19800413')