http://stackoverflow.com/questions/4136248/how-to-generate-a-human-readable-time-range-using-ruby-on-rails This would be an interesting challenge. It can be solved iteratively or recursively.