[Remind-Fans] Bug: date_spec and the turn of the year
David F. Skoll
dfs at roaringpenguin.com
Tue Sep 16 21:57:31 EDT 2008
Andrew Ho wrote:
> I think I've identified a bug in remind, but this could be a figment
> of my 02:30 imagination. Can someone confirm that this is not
> expected behaviour?
Well. :-) It's expected behaviour if it's what you expect.
Arguably, it's a bug. After all, look at this:
$ echo 'REM mon 29 Dec MSG X' | remind -dt - 1 jan 2000
-(1): Trig = Monday, 1 January, 2001
Actually, it's *not* a bug. Please see the slides at
http://www.roaringpenguin.com/files/download/remind-oclug.pdf
Look at slides 12 and 13 ("The REM Command").
Study the Remind date-calculation alogrithm *very* carefully.
Now, here's a file that will give the "expected" output:
FSET _back(days) TRIGGER(TODAY()-days)
REM mon 29 Dec SCANFROM [_back(7)] MSG X
Let's feed that to Remind:
$ remind -dt mon.rem 1 jan 2000
mon.rem(2): Trig = Monday, 3 January, 2000
Ahhh! Much better! :-)
Regards,
David.
P.S. For those of you who don't want to look at the slides, here's
a summary of the important bits:
The Remind algorithm:
o Each REM command has a date specification.
o Remind starts from *today* and checks
whether or not the date specification is
satisfied. If not, it increments the date
and checks again.
o Remind keeps going until it finds a date
that satisfies the spec (the trigger date) or
proves to itself that no such date exists.
More information about the Remind-fans
mailing list