Hi,
During some tests with the module tmrec, we stumble upon an unexpected
behavior of the monthly recurrence with days of the week.
The last week does not match our expected date.
For example, the last Monday of March 2020 is day 30 (fifth Monday of the
month) however, neither the 5MO or -1MO configuration on the bday parameter
match with a timestamp configured to day 30. The same situation is verified
on months with only 4 weeks.
To easily explain the behavior we create this configuration:
$var(ts)="1584355625"; # Monday, March 16, 2020 10:47:05
if(tmrec_match("20200101T090000|PT8H|monthly||1|3MO||||","$(var(ts){s.int})"))
{
xlog("L_INFO","Epoch $var(ts) matches with 3MO\n");
}else{
xlog("L_INFO","Epoch $var(ts) doesn't match with 3MO\n");
}
$var(ts)="1584960425"; # Monday, March 23, 2020 10:47:05
if(tmrec_match("20200101T090000|PT8H|monthly||1|4MO||||","$(var(ts){s.int})"))
{
xlog("L_INFO","Epoch $var(ts) matches with 4MO\n");
}else{
xlog("L_INFO","Epoch $var(ts) doesn't match with 4MO\n");
}
$var(ts)="1585565225"; # Monday, March 30, 2020 10:47:05
if(tmrec_match("20200101T090000|PT8H|monthly||1|5MO||||","$(…
})")){
xlog("L_INFO","Epoch $var(ts) matches with 5MO\n");
}else{
xlog("L_INFO","Epoch $var(ts) doesn't match with 5MO\n");
}
$var(ts)="1584960425"; # Monday, March 23, 2020 10:47:05
if(tmrec_match("20200101T090000|PT8H|monthly||1|-1MO||||","$…
})")){
xlog("L_INFO","Epoch $var(ts) matches with -1MO\n");
}else{
xlog("L_INFO","Epoch $var(ts) doesn't match with -1MO\n");
}
The results were:
Epoch 1584355625 matches with 3MO
Epoch 1584960425 matches with 4MO
Epoch 1585565225 doesn't match with 5MO
Epoch 1584960425 matches with -1MO
Are we configuring the tmrec_match wrongly?
--
Cumprimentos / Best regards,
*David Gonçalves*
Research and Development Technician
Phone: +351 256 370 980
Email: david.goncalves(a)itcenter.com.pt