Prm off by one [MJ-951] [MJ-955]

The error seemed to be caused by the `+1` on line 215, but fixing that caused other issues (which I'll report elsewhere), so I ended up refactoring the whole method. 

As mentioned briefly in the commit log, The unit test only checks whether the string matches what the users sees. Further tests (separate PR's) will cover the following:

* checking for correct arithmetic when calculating date ranges
* Fixing remaining Exeptions
* validating date ranges (eg, no negative dates)
* The picker Widget doesn't change to "View All" (blocked by work on Exceptions)