Upon reflection, my idea was flawed. It makes no sense to compute ranges based upon "today" because the previously-computed ranges would be based on some other "today". This would (could) make a mishmash of dates.
Instead I have chosen arbitrary groupings.
- Below 1000 is shown in the 0000-0999 group
- From 1000 to 1899 is shown in a group defined by its century
- From 1900 to 2099 is shown in a group defined by its decade
- From 2100 to 2199 is shown by century
- From 3000 on is shown by millennium.
An example is attached.