On 14/12/13 19:20, Kevin King wrote:
> The 8601 week is based on the count of Thursdays but the week starts on the
> Monday and ends on the following Sunday.  I haven't tested this, but is
> this accounted for in your logic?  And what about the situation where Jan 1
> (on a Fri, Sat, Sun) is in the 52nd or 53rd week of the prior year?
> 
YES IT IS :-)

If you read my code, it takes the given date, goes back to the start of
the week, then goes forward to the Thursday. It then works out where in
its year that Thursday falls. This is guaranteed (if the maths is
correct) to give the correct answer.

Cheers,
Wol
> 
> On Sat, Dec 14, 2013 at 12:14 PM, Wols Lists <antli...@youngman.org.uk>wrote:
> 
>> On 14/12/13 18:53, Kevin King wrote:
>>> The most challenging date math we've faced recently (a real project) is
>> the
>>> ISO 8601 week calculation.  Extremely easy to introduce an off-by-one
>> error!
>>>
>> THAT'S MY CODE!
>>
>> And how long has it been on Pickwiki? Absolutely ages!
>>
>> How does your solution compare with mine? Six lines of code :-)
>> http://www.pickwiki.com/cgi-bin/wiki.pl?IsoWeekNum
>>
>> I think my code was lifted for this ...
>> http://www.pickwiki.com/cgi-bin/wiki.pl?DateUtility
>> Which had the "off by one" introduced :-)
>>
>> Cheers,
>> Wol
>>>
>>> On Sat, Dec 14, 2013 at 11:13 AM, Wols Lists <antli...@youngman.org.uk
>>> wrote:
>>>
>>>> On 14/12/13 16:48, Dan Fitzgerald wrote:
>>>>> Kevin: I'd take the month (verifying; gigo), then run it through a case
>>>> statement to determine the number of days in that month (sounds like a
>>>> handy subroutine to have in the toolbox). Then I'd convert to get the
>> day
>>>> of the week, another case statement to get the number of days past
>>>> Thursday, do the math from the last DOM internal date, oconv the result,
>>>> and grab a cup of dark roast. There are probably more efficient ways,
>> but
>>>> that's how I'd work it through my head in an interview.
>>>>
>>>> This is pretty much the same problem as "current week of the year" :-)
>>>>
>>>> Can't remember off the top of my head, but it's *extremely* easy to make
>>>> an "off by one" error - I remember someone copying my Pickwiki code and
>>>> getting it wrong, introducing the very error I'd fixed.
>>>>
>>>> Cheers,
>>>> Wol
>>>> _______________________________________________
>>>> U2-Users mailing list
>>>> U2-Users@listserver.u2ug.org
>>>> http://listserver.u2ug.org/mailman/listinfo/u2-users
>>>>
>>> _______________________________________________
>>> U2-Users mailing list
>>> U2-Users@listserver.u2ug.org
>>> http://listserver.u2ug.org/mailman/listinfo/u2-users
>>>
>>
>> _______________________________________________
>> U2-Users mailing list
>> U2-Users@listserver.u2ug.org
>> http://listserver.u2ug.org/mailman/listinfo/u2-users
>>
> _______________________________________________
> U2-Users mailing list
> U2-Users@listserver.u2ug.org
> http://listserver.u2ug.org/mailman/listinfo/u2-users
> 

_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to