Or, in J: isleap=: 3 :'2|+/0=4 100 400|/y'
isleap 1900 2000 2012 2100 0 1 1 0 (I am mentioning this because I think I included a buggy version of this expression in an earlier message - I think I left out the 0= part.) Thanks, -- Raul On Mon, Sep 22, 2014 at 10: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
