Re: IsoWeek Function

• To: mathgroup at smc.vnet.net
• Subject: [mg127332] Re: IsoWeek Function
• From: Murta <rodrigomurtax at gmail.com>
• Date: Tue, 17 Jul 2012 01:32:45 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: mathgroup-newout@smc.vnet.net
• Delivered-to: mathgroup-newsend@smc.vnet.net
• References: <20120716034417.DD63E6857@smc.vnet.net> <ju0l8s\$l00\$1@smc.vnet.net>

```Tks for your attention
I have made some progress, but not enough:

below there is one fast way to get weekDay

weekDayC = Compile[{{ano, _Integer}, {m, _Integer}, {d, _Integer}}
, Module[{t, y = ano},
(*2 for Monday*)
t = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
y -= Boole[m < 3];
Mod[y + IntegerPart[y/4.] - IntegerPart[y/100.] +
IntegerPart[y/400.] + t[[m]] + d + 1, 7, 1]
]
]

I used it in my ISOWeek like this

ISOWeekX2[x_] := Module[{baseDate, year454, weekNames, numWeek},
year454 = First@DatePlus[x, -Mod[weekDayC @@ x - 1, 7, 1] + 4];
baseDate = {year454, 1, 3};
numWeek =
IntegerPart[
1/7 (DateDifference[baseDate, x] + weekDayC @@ baseDate + 5)];
{year454, numWeek}
]

But the there are 2 another slow parts, that are DateDifference and DataPlus. But to get rid of that that is a lot of job..
Native functions would be great...

```

• Prev by Date: can somebody help ?
• Next by Date: Plotting: how does one reverse the time axis tick mark values?
• Previous by thread: Re: IsoWeek Function
• Next by thread: Re: IsoWeek Function