Joe,

I wonder if you would have mentioned it if the error had gone the other way :-) 

Maybe we should include (39<.((yt-yb) - mt<mb)) as an option

Cheers, bob

On Sep 23, 2014, at 10:13 AM, Joe Bogner <[email protected]> wrote:

> Cool! I found this because my birthday hasn't occurred yet this year. I was
> wondering if I had forgotten how old I was
> 
> On Tue, Sep 23, 2014 at 1:09 PM, robert therriault <[email protected]>
> wrote:
> 
>> Hi Joe,
>> 
>> Turns out it was a quick fix and that I that my test results for
>> 
>> 1900 2 1 age 1899 3 1
>> 
>> and
>> 
>> 2000 2 1 age 1999 3 1
>> 
>> were faulty and should have caught this. In this version they have been
>> updated and New Years Eve baby test has been added in your honour!
>> 
>> Cheers, bob
>> 
>> age =: 3 : 0 NB. age in yyyy mm dd as of x if born on y
>> 'left argument is today ; right argument is birth day result is age in
>> yyyy mm dd'
>> :
>> if. x <&(1000#.]) y do. 'Wasn''t born yet!' return. end.
>> 'yb mb db'=. y
>> 'yt mt dt'=. x
>> ly=. 2 | +/ 0= 4 100 400 | yb
>> dcount=.  31 , (28 + ly ) , 31 30 31 30 31 31 30 31 30 31
>> ((yt-yb) - mt<mb) , ((12|mt-mb) - dt<db) , ((mt-2){dcount )|dt-db
>> )
>> testdate =: 3 : 0
>> assert. 0 0 0 -: 2000 2 28 age 2000 2 28 NB. same date
>> assert. 0 0 1 -: 2000 1 1 age 1999 12 31 NB. New Years Eve baby (Joe
>> Bogner)
>> assert. 0 0 1 -: 2000 3 2 age 2000 3 1 NB. event and current after feb 29
>> in leap year
>> assert. 0 0 1 -: 2000 2 28 age 2000 2 27 NB. event and current before feb
>> 29 in leap year
>> assert. 0 0 2 -: 2000 3 1 age 2000 2 28 NB. event before and current after
>> feb 29 in leap year
>> assert. 'Wasn''t born yet!' -: 2000 2 28 age 2000 3 1 NB. event before
>> current in leap year
>> assert. 0 0 1 -: 1900 3 2 age 1900 3 1 NB. event and current after feb 28
>> in non leap year
>> assert. 0 0 1 -: 1900 2 28 age 1900 2 27 NB. event and current before feb
>> 28 in non leap year
>> assert. 0 0 1 -: 1900 3 1 age 1900 2 28 NB. event before and current after
>> feb 28 in leap non year
>> assert. 'Wasn''t born yet!' -: 1900 2 28 age 1900 3 1 NB. event before
>> current in non leap year
>> assert. 1 0 1 -: 2000 3 2 age 1999 3 1 NB. event previous year and current
>> after feb 29 in leap year
>> assert. 1 0 1 -: 2000 2 28 age 1999 2 27 NB. event previous year and
>> current before feb 29 in leap year
>> assert. 1 0 1 -: 2000 3 1 age 1999 2 28 NB. event previous year before and
>> current after feb 29 in leap year
>> assert. 0 11 0 -: 2000 2 1 age 1999 3 1 NB. event previous year after and
>> current before feb 29 in leap year
>> assert. 1 0 1 -: 1900 3 2 age 1899 3 1 NB. event previous year and current
>> after feb 28 in non leap year
>> assert. 1 0 2 -: 1900 3 1 age 1899 2 27 NB. event previous year and
>> current before feb 28 in non leap year
>> assert. 1 0 1 -: 1900 3 1 age 1899 2 28 NB. event previous year before and
>> current after feb 28 in non leap year
>> assert. 0 11 0 -: 1900 2 1 age 1899 3 1 NB. event previous year after and
>> current before feb 29 in non leap year
>> )
>> 
>> testdate ''
>> On Sep 23, 2014, at 9:58 AM, robert therriault <[email protected]>
>> wrote:
>> 
>>> Arghhh!
>>> 
>>> The challenges of an evolving test suite. :-)  My guess is that I can
>> fix that using the same type of adjustment that I used for the month
>> result, but it will be  a while before I get a chance to check it out, and
>> this puzzle has surprised me more than once!
>>> 
>>> Thanks for catching that Joe.
>>> 
>>> Cheers, bob
>>> 
>>> On Sep 23, 2014, at 9:50 AM, Joe Bogner <[email protected]> wrote:
>>> 
>>>> bob, is this right?
>>>> 
>>>> 2014 1 1 age 2013 12 31
>>>> 
>>>> 1 0 1
>>>> 
>>>> 
>>>> I would have expected 0 0 1 ?
>>>> 
>>>> On Tue, Sep 23, 2014 at 12:44 PM, robert therriault <
>> [email protected]>
>>>> wrote:
>>>> 
>>>>> Hi PA
>>>>> 
>>>>> I think that Raul's isleap takes this into account and does make 2000
>> the
>>>>> leap year that it should be.
>>>>> 
>>>>> http://www.timeanddate.com/date/leapyear.html
>>>>> 
>>>>> Cheers, bob
>>>>> 
>>>>> On Sep 23, 2014, at 9:37 AM, PMA <[email protected]> wrote:
>>>>> 
>>>>>> Just in case, 2000 (divisible by 400) isn't a leap
>>>>>> year either, though my Linux 'cal' claims it was.
>>>>>> 
>>>>>> PA
>>>>>> 
>>>>>> 
>>>>>> Linda Alvord wrote:
>>>>>>> Don, You bailed me out of this little glitch!  Linda i       U
>>>>>>> 
>>>>>>> -----Original Message-----
>>>>>>> From: [email protected]
>>>>>>> [mailto:[email protected]] On Behalf Of Don
>>>>> Kelly
>>>>>>> Sent: Monday, September 22, 2014 10:14 PM
>>>>>>> To: [email protected]
>>>>>>> Subject: Re: [Jprogramming] Weekend Puzzle - Age of Groundhog born
>> 2002
>>>>> 2 2
>>>>>>> 
>>>>>>> Fortunately, the use of "leap" is valid as long as one doesn't go
>> back
>>>>>>> past 1901 or ahead past 2099.
>>>>>>> 
>>>>>>> 1900 and 2100 aren't leap years (Fine tuning of the leap year
>>>>> calculation ).
>>>>>>> 
>>>>>>> Don Kelly
>>>>>> ----------------------------------------------------------------------
>>>>>> For information about J forums see
>> http://www.jsoftware.com/forums.htm
>>>>> 
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>> 
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>> 
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>> 
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>> 
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to