Convert list of weekdays into intervals

molcontrege

New Member
I'm looking for a function that drops days of the week from a sequence of weekdays if 3 or more consecutive days follow each other. This is my test code (uses Test::More test framework)\[code\]// function is($result, $expected, $message)is(drop_days(""), "", 'Empty');is(drop_days("Mo"), "Mo", 'One Day');is(drop_days("Mo,Tu"), "Mo,Tu", 'Two Days');is(drop_days("Mo,Tu,We"), "Mo-We", 'Three Days');is(drop_days("Mo,Tu,We,Th,Fr,Sa,Su"), "Mo-Su", 'Seven Days');is(drop_days("Mo,Tu,Th,Fr"), "Mo,Tu,Th,Fr", 'Four days with gap');is(drop_days("Mo,Tu,We,Fr"), "Mo-We,Fr", '3 consecutive days, one single day');is(drop_days("Mo,Tu,We,Fr,Sa,Su"), "Mo-We,Fr-Su", '2 pairs of 3 consecutive days');\[/code\]
 
Top