Re: Runt: Matching the year


#1

I downloaded runt to do some temporal expression work, and
was wondering if there’s any way to match against a year.
From what I can tell I can match against month, day, hour,
min, sec, but not the year.

Well, strictly speaking you could use a DateRange constructed
with January 1st and December 31st of the year(s) in question but this
is a pain…

Basically I’d like to have a timex that matches all dates
with the year 2005. If I create a date that has the year
2006, then include?
should return false for that particular date. Am I missing
something in the docs? I’d appreciate any help.

Pat

I’ve just added the following class to CVS (apologize if Outlook mangles
the layout)

Simple expression which returns true if the supplied arguments

occur within the given year.

class YearTE

def initialize(year)
@year = year
end

def include?(date)
return date.year == @year
end

end

For an example of usage see the test case in
test/temporalexpressiontest.rb. Here’s an excerpt:

def test_year_te

second sun of any month

second_sun = DIMonth.new(Second, Sunday)

simple year matching expression which will return true for

any date in 2005

year_te = YearTE.new(2005)

Second Sunday of a month in 2002

dt_in_2002 = Date.civil(2002,9,8)

Second Sunday of a month in 2005

dt_in_2005 = Date.civil(2005,12,11)

Matches

assert(year_te.include?(dt_in_2005))

Does not match

assert(!year_te.include?(dt_in_2002))
end

Feel free to contact me directly if you have any questions or problems.

Thanks for using Runt!

Matt