Grouping items by date

Viewed 27264

I have items in my list and the items have a field, which shows the creation date of the item.

enter image description here

and I need to group them based on a "compression", which the user gives. The options are Day, Week, Month and Year.

If the user selects day compression, I need to group my items as such that the items, which are created in the same day, will be groupped. In my example above, only item 1 and item 2 are created in the same day. The others are also groups but they will have only one item because at their day, only one item is created.

{{item1, item2}, {item3}, {item4}, {item5}, {item6}, {item7}}

If the user selects week:

{{item1, item2, item3, item4}, {item5}, {item6}, {item7}}

If the user selects month:

{{item1, item2, item3, item4, item5}, {item6}, {item7}}

If the user selects year:

{{item1, item2, item3, item4, item5, item6}, {item7}}

After groups are created, the date of the items are not important. I mean the key can be anything, as long as the groups are created.

In case of usage of Map, I thought as the keys as follow:

day = day of the year
week = week of the year
month = month of the year
year = year

What would be the best solution to this problem? I could not even start it an I cannot think of a solution other than iteration.

5 Answers
Related