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