In Denmark the 1/1/2009 belongs to week 53 of year 2008.
The code below, as I believe should apply to Danish settings, returns
1, which is wrong.
Am I having a wrong approach?
'--code begin
Dim iWeek As Integer
Dim gc As New System.Globaliz ation.Gregorian Calendar
gc.CalendarType = Globalization.G regorianCalenda rTypes.Localize d
iWeek = gc.GetWeekOfYea r(#1/1/2009#,
Globalization.C alendarWeekRule .FirstFourDayWe ek, DayOfWeek.Monda y)
MsgBox(iWeek)
'-- code end --
I have a function for SQL-server that works perfectly, but is it
really necessary for such an ugly solution?
DECLARE @ISOweek varchar(10)
DECLARE @DATE datetime
DECLARE @s varchar(10)
DECLARE @Year int
SET @DATE='01-01-2009'
SET @ISOweek= CONVERT(varchar ,DATEPART(wk,@D ATE)+1
-DATEPART(wk,CAS T(DATEPART(yy,@ DATE) as CHAR(4))+'0104' ))
--Special cases: Jan 1-3 may belong to the previous year
IF (@ISOweek='0')
SET
@ISOweek=CONVER T(varchar,dbo.I SOweek(CAST(DAT EPART(yy,@DATE)-1
AS CHAR(4))+'12'+ CAST(24+DATEPAR T(DAY,@DATE) AS
CHAR(2)))+1)+', '+CONVERT(varch ar,YEAR(@DATE)-1)
--Special case: Dec 29-31 may belong to the next year
IF ((DATEPART(mm,@ DATE)=12) AND
((DATEPART(dd,@ DATE)-DATEPART(dw,@DA TE))>= 28))
SET @ISOweek='1'
PRINT (@ISOweek)
Regards /Snedker
--
http://www.vinthervej2.dk [private]
The code below, as I believe should apply to Danish settings, returns
1, which is wrong.
Am I having a wrong approach?
'--code begin
Dim iWeek As Integer
Dim gc As New System.Globaliz ation.Gregorian Calendar
gc.CalendarType = Globalization.G regorianCalenda rTypes.Localize d
iWeek = gc.GetWeekOfYea r(#1/1/2009#,
Globalization.C alendarWeekRule .FirstFourDayWe ek, DayOfWeek.Monda y)
MsgBox(iWeek)
'-- code end --
I have a function for SQL-server that works perfectly, but is it
really necessary for such an ugly solution?
DECLARE @ISOweek varchar(10)
DECLARE @DATE datetime
DECLARE @s varchar(10)
DECLARE @Year int
SET @DATE='01-01-2009'
SET @ISOweek= CONVERT(varchar ,DATEPART(wk,@D ATE)+1
-DATEPART(wk,CAS T(DATEPART(yy,@ DATE) as CHAR(4))+'0104' ))
--Special cases: Jan 1-3 may belong to the previous year
IF (@ISOweek='0')
SET
@ISOweek=CONVER T(varchar,dbo.I SOweek(CAST(DAT EPART(yy,@DATE)-1
AS CHAR(4))+'12'+ CAST(24+DATEPAR T(DAY,@DATE) AS
CHAR(2)))+1)+', '+CONVERT(varch ar,YEAR(@DATE)-1)
--Special case: Dec 29-31 may belong to the next year
IF ((DATEPART(mm,@ DATE)=12) AND
((DATEPART(dd,@ DATE)-DATEPART(dw,@DA TE))>= 28))
SET @ISOweek='1'
PRINT (@ISOweek)
Regards /Snedker
--
http://www.vinthervej2.dk [private]
Comment