On Mar 19, 2004, at 1:56 PM, Hal Fulton wrote: > Jim Weirich wrote: > > As Mr. Spock would say: "Fascinating, Captain." > >> To summarize, you can create arbitrarily complex temporal expressions >> by >> using a small set of primitives (e.g. YearInRange, DayOfMonth) and a >> simple set of combining rules (Union, Intersection, Difference). > > The need for intersection is obvious. I don't immediately see the need > for union, however. DayOfMonth(1).difference(DayOfWeek(:sunday)).union( DayOfMonth(2).intersection(DayOfWeek(:monday)) ) I believe that this imaginary code would give you every first of the month, unless it falls on a sunday, then it gives the second of the month. Trchic! (yeah, I probly misspelled that.) I'd have to agree with Mr. Spock. :) --Mark