Re: [U2] [OT] Interview Questions
Kevin King <[email protected]>
| Newsgroups | gmane.comp.db.u2.general |
|---|---|
| Message-ID | <CA+v=tEJeWVajWZKcb7AOwWRXnEn0P=Rs5a2QxDcYsprRtDZyiA@mail.gmail.com> |
Adding the week number was no big deal. That's a pretty nifty bit of code there man. Thanks for sharing. On Sat, Dec 14, 2013 at 1:03 PM, Kevin King <[email protected]> wrote: > I ran it through dates from 01 Jan 13 to 31 Dec 2099 and it works > perfectly. Now I just need to adjust it to include the date in the format > yyyy-ww. > > > On Sat, Dec 14, 2013 at 12:54 PM, Wols Lists <[email protected]>wrote: > >> On 14/12/13 19:44, Kevin King wrote: >> > I'll have to run this through some testing, as it's definitely simpler >> than >> > the solution I came up with. >> > >> Read the notes at the top, explaining the logic. Satisfy yourself that's >> correct (it is :-), then satisfy yourself that the code actually >> implements it. >> >> What did you come up with? >> >> Cheers, >> Wol >> > >> > On Sat, Dec 14, 2013 at 12:40 PM, Wols Lists <[email protected] >> >wrote: >> > >> >> 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 < >> [email protected] >> >>> 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 < >> [email protected] >> >>>>> 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 >> >>>>>> [email protected] >> >>>>>> http://listserver.u2ug.org/mailman/listinfo/u2-users >> >>>>>> >> >>>>> _______________________________________________ >> >>>>> U2-Users mailing list >> >>>>> [email protected] >> >>>>> http://listserver.u2ug.org/mailman/listinfo/u2-users >> >>>>> >> >>>> >> >>>> _______________________________________________ >> >>>> U2-Users mailing list >> >>>> [email protected] >> >>>> http://listserver.u2ug.org/mailman/listinfo/u2-users >> >>>> >> >>> _______________________________________________ >> >>> U2-Users mailing list >> >>> [email protected] >> >>> http://listserver.u2ug.org/mailman/listinfo/u2-users >> >>> >> >> >> >> _______________________________________________ >> >> U2-Users mailing list >> >> [email protected] >> >> http://listserver.u2ug.org/mailman/listinfo/u2-users >> >> >> > _______________________________________________ >> > U2-Users mailing list >> > [email protected] >> > http://listserver.u2ug.org/mailman/listinfo/u2-users >> > >> >> _______________________________________________ >> U2-Users mailing list >> [email protected] >> http://listserver.u2ug.org/mailman/listinfo/u2-users >> > > _______________________________________________ U2-Users mailing list [email protected] http://listserver.u2ug.org/mailman/listinfo/u2-users