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