lib: support "every <weekday>"

A shorter spelling for "every <n>th day of week".
This commit is contained in:
Dmitry Astapov 2017-11-24 23:02:55 +00:00
parent 993e3f2b67
commit 950891b55b

View File

@ -811,6 +811,12 @@ lastthisnextthing = do
-- Right (WeekdayOfMonth 2 4,DateSpan -2008/12/31) -- Right (WeekdayOfMonth 2 4,DateSpan -2008/12/31)
-- >>> p "every 1st monday of month to 2009" -- >>> p "every 1st monday of month to 2009"
-- Right (WeekdayOfMonth 1 1,DateSpan -2008/12/31) -- Right (WeekdayOfMonth 1 1,DateSpan -2008/12/31)
-- >>> p "every tue"
-- Right (DayOfWeek 2,DateSpan -)
-- >>> p "every 2nd day of week"
-- Right (DayOfWeek 2,DateSpan -)
-- >>> p "every 2nd day 2009-"
-- Right (DayOfMonth 2,DateSpan 2009/01/01-)
periodexpr :: Day -> SimpleTextParser (Interval, DateSpan) periodexpr :: Day -> SimpleTextParser (Interval, DateSpan)
periodexpr rdate = choice $ map try [ periodexpr rdate = choice $ map try [
intervalanddateperiodexpr rdate, intervalanddateperiodexpr rdate,
@ -858,6 +864,10 @@ reportinginterval = choice' [
string "day" string "day"
of_ "week" of_ "week"
return $ DayOfWeek n, return $ DayOfWeek n,
do string "every"
many spacenonewline
n <- weekday
return $ DayOfWeek n,
do string "every" do string "every"
many spacenonewline many spacenonewline
n <- nth n <- nth