Add granulating the time range

Granulating means splitting the time range into exclusive time
ranges of years, months, days and whatever is left.