IsoWeek Function

• To: mathgroup at smc.vnet.net
• Subject: [mg127320] IsoWeek Function
• From: Murta <rodrigomurtax at gmail.com>
• Date: Sun, 15 Jul 2012 23:44:17 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: mathgroup-newout@smc.vnet.net
• Delivered-to: mathgroup-newsend@smc.vnet.net

```Hi All

Please, in Mathematica 9 include IsoWeek functions in the standard into DateList and DateString. It would be simple if we have a "ISOWeekYear" and "ISOWeekNumber" as in Oracle and SQL.
Today it's necessary to implemente our own functions, and I get very slow performance results.
I use that to take ISO Week numbers:

ISOWeek[x_]:=Module[{baseDate,year454,weekNames,numWeek},
weekNames={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
year454=First@DateList@DatePlus[x,-Position[weekNames,DateString[DatePlus[x,-1],{"DayName"}],1][[1,1]]+4];
baseDate={year454,1,3};
numWeek=IntegerPart[1/7(DateDifference[baseDate,x]+Position[weekNames,DateString[baseDate,{"DayName"}],1][[1,1]]+5)];
{year454,numWeek}
]

Example
ISOWeek["20120101"]
{2011,52}

I tried to compile it, but with no sucess..
Any clue?
Another tip for the developer is create an string "WeekDayNumber", that can return the week day number. Today we have option just to names.