Actually Don the most recent version that uses the difference in todayno 
between Feb 29 and March 1 takes this into account. In 1900 and 2100 it returns 
the same number for both dates. On leap years it returns a one day difference. 

Looks like we should be good for a few thousand years before we run into the 
next level of year duration adjustments required by our choice of calendars.

Cheers, bob

On Sep 22, 2014, at 7:13 PM, Don Kelly <[email protected]> wrote:

> 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
> 
> 
> 
> On 20/09/2014 10:53 PM, robert therriault wrote:
>> Hi Linda,
>> 
>> I share your dream and sometimes the statement 'I have a dream' can change 
>> the world. :-)
>> 
>> On to the weekend puzzle...
>> 
>> The first thing I need to figure out is whether the birthday has happened 
>> this year or not. If it has then I can pretty easily get the number of days 
>> since the birthday using todayno, but if it hasn't then I need to find the 
>> number of days since the previous year's birthday.
>> 
>> 'yg mg dg' =: gbday =: 2002 2 2  NB. Groundhog's birthday
>> 'ya ma da'=:afterbday =: 2014 9 20      NB. An example of date after the 
>> birthday
>> 'yb mb db'=:beforebday =: 2014 1 31      NB. An example of a date before the 
>> birthday
>> 
>> bdYet=:(0>-/) &: todayno  NB. returns 1 if the current date is in the same 
>> calendar year before the birthday
>>    ya
>> 2014
>>    ya=. ya- afterbday bdYet ({. afterbday),}.gbday NB.use the current year 
>> from example and the birthday
>>    ya
>> 2014
>>    yb
>> 2014
>>    yb=. yb- beforebday bdYet ({. beforebday),}.gbday
>>    yb
>> 2013
>> 
>> Next thing would be to define a vector that gives the accumulated days in 
>> the year if the year were to start on February 1st. The leap year issue 
>> means that the first item in the list will be 29 if it is a leap year. since 
>> I have already figured out whether I am counting from the previous year, I 
>> will use the adjusted year to decide if the year that I am counting from was 
>> a leap year. I will just use a simple (and incorrect) version of leap year.
>> 
>> leap=: 0= 4&|
>> feb=: 28 + leap ya
>>    feb
>> 28
>>    [daysFebFirst=: +/\ (feb), 31 30 31 30 31 31 30 31 30 31 31
>> 28 59 89 120 150 181 212 242 273 303 334 365
>> 
>> Finally, I create the results.
>> 
>>    [yr=:ya-yg NB. number of years
>> 12
>> 
>>    [elapsed=: -/ todayno"_1 afterbday,: ya,}.gbday NB. days since the 
>> birthday
>> 230
>>    [mr=: +/ elapsed > daysFebFirst NB. number of months
>> 7
>>    [dr=: (<:mr){ elapsed - daysFebFirst
>> 18
>>    yr,mr,dr
>> 12 7 18
>> 
>> And for the case of a date before the birthday Jan 31st 2014 we get
>> 
>>    [feb=: 28 + leap yb NB. No change since 2013 is not a leap year
>> 28
>>    [yr=:yb-yg NB. number of years
>> 11
>> 
>>    [elapsed=: -/ todayno"_1 beforebday ,: yb ,}.gbday NB. days since the 
>> previous birthday
>> 363
>>    [mr=: +/ elapsed > daysFebFirst NB. number of months
>> 11
>>    [dr=: (<:mr){ elapsed - daysFebFirst
>> 29
>>    yr,mr,dr
>> 11 11 29
>> 
>> Cheers, bob
>> 
>> On Sep 20, 2014, at 10:58 AM, Linda Alvord <[email protected]> wrote:
>> 
>>> The J forum is my elementary school set of sub imjects.  What you suggest is
>>> exactly what I would hope would happen in a J classroom.  All would have J.
>>> All could experiment and exchange ideas. Hopefully they would have solutions
>>> they believe were correct.  Then they could explain their thinking to the
>>> entire class and the teacher.  At this point in the process, the teacher
>>> would not be a leader but a follower.
>>> 
>>> Possibly I am dreaming....
>>> 
>>> Linda
>>> 
>>> -----Original Message-----
>>> From: [email protected]
>>> [mailto:[email protected]] On Behalf Of robert
>>> therriault
>>> Sent: Saturday, September 20, 2014 1:20 PM
>>> To: [email protected]
>>> Subject: Re: [Jprogramming] Weekend Puzzle - Age of Groundhog born 2002 2 2
>>> 
>>> Hi Linda,
>>> 
>>> If you are looking for a way to get learners to be interested in the
>>> problem, why not use the very model of learning that we are using here?
>>> 
>>> You put a problem out to your class (forum) and see how the responses go.
>>> You as the teacher (moderator) are free to choose the rules, knowing that
>>> the students (participants) are able to put their attention elsewhere if
>>> things are not kept interesting. It is a style of learning that we use on
>>> these forums everyday and it seems to work for us.
>>> 
>>> What might not work as well is going into the class and showing them how to
>>> solve the problem, as this takes away so much from the experience that we
>>> enjoy when we are learning. The challenge for the teacher is not so much
>>> coming up with a solution, as it is to make sure that they are engaging as
>>> many students as possible. This is especially true at the extremes of the
>>> class' abilities - both the really adept and those that are struggling with
>>> the concepts are where teachers are most valuable.
>>> 
>>> Just my two bits, but I would probably just start with the question of 'how
>>> would you measure time in metric?' and use that as a way to explore all the
>>> ways that you would count and group the types of time and how they way we
>>> measure time can be pretty crazy and why it might be good if we could get
>>> computers to do the work of taking care of the crazy systems that we have
>>> set up. Where the class would take this in terms of topic is wide open, as a
>>> teacher you just make sure that as the core concepts arise they are covered
>>> accurately.
>>> 
>>> Cheers, bob
>>> 
>>> ps. The quickest way to get me to care about the age of your groundhog is to
>>> have one of my classmates start trying to figure it out, but my learning is
>>> usually socially motivated. :-)
>>> 
>>> On Sep 20, 2014, at 9:35 AM, Joe Bogner <[email protected]> wrote:
>>> 
>>>> Hi Linda
>>>> 
>>>> The solution is quite simple and uses one built verb from an addon. I
>>>> posted it with the solution masked so others can try it on their own
>>>> without accidentally seeing mine
>>>> 
>>>> The actual solution is the result of this:
>>>> 
>>>> |. solution2
>>>> On Sep 20, 2014 11:54 AM, "Linda Alvord" <[email protected]> wrote:
>>>> 
>>>>> We are talking children here.
>>>>> 
>>>>> Onyadot. emiTetaDot, ffiDst, onyadot, emiTetaDot, emitetad,  sepyt and
>>>>> eriuqer  are all denied!
>>>>> 
>>>>> How about using +, -, *, ?, %: and that sort of thing.
>>>>> 
>>>>> I must admit you did get  the right answer!
>>>>> 
>>>>> You can also get a second chance.
>>>>> 
>>>>> Cheers,  Linda
>>>>> 
>>>>> 
>>>>> 
>>>>> -----Original Message-----
>>>>> From: [email protected]
>>>>> [mailto:[email protected]] On Behalf Of Joe
>>> Bogner
>>>>> Sent: Saturday, September 20, 2014 9:10 AM
>>>>> To: [email protected]
>>>>> Subject: Re: [Jprogramming] Weekend Puzzle - Age of Groundhog born 2002 2
>>> 2
>>>>> solution...
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 1
>>>>> 2
>>>>> 3
>>>>> 4
>>>>> 5
>>>>> 
>>>>> 
>>>>> lightly obfuscated for someone who doesn't want the solution
>>>>> 
>>>>> 
>>>>> solution1=: 0 : 0
>>>>> 
>>>>> )2 2 2002 onyadot emiTetaDot( ffiDst )02 9 4102 onyadot emiTetaDot(
>>>>> 
>>>>> 'emitetad/sepyt' eriuqer
>>>>> 
>>>>> )
>>>>> 
>>>>> 
>>>>> 
>>>>> to run:
>>>>> 
>>>>> 
>>>>> 0!:1 |. solution1
>>>>> 
>>>>> 
>>>>> 
>>>>> solution2 =: 0 : 0
>>>>> 
>>>>> )2 2 2002( ffiDst )02 9 4102(
>>>>> 
>>>>> 'emitetad/sepyt' eriuqer
>>>>> 
>>>>> )
>>>>> 
>>>>> 
>>>>> 0!:1 |. solution2
>>>>> 
>>>>> 
>>>>> 
>>>>> note: both take advantage of a addon. solution1 uses todayno just because
>>>>> it was stated in the problem but solution2 is what I'd really use
>>>>> 
>>>>> 
>>>>> 
>>>>> On Sat, Sep 20, 2014 at 4:54 AM, Linda Alvord <[email protected]>
>>>>> wrote:
>>>>> 
>>>>>> Using the verb  todayno  which provides the number of days since the
>>>>>> beginning of 1800,  write what you need to find the age today of a
>>>>>> groundhog
>>>>>> born on 2002 2 2.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>  todayno 2014 9 2014
>>>>>> 
>>>>>> 80418
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>  2014 9 20 age 2002 2 2
>>>>>> 
>>>>>> 12 7 18
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> His age is 12 years, 7 months and 18 days.  Use simple J.  Check that
>>>>> your
>>>>>> solution provides a correct answer for you birthday.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Have a pleasant weekend.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Linda
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> ----------------------------------------------------------------------
>>>>>> 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
>> 
> 
> ----------------------------------------------------------------------
> 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