This is not just a simple date method anymore :P
To make it easier I would probably start collecting some information first. You can for example determine first the average age of the given dates. Based on that you can already termine the correct year right.
To get the average date (day + month) I would probably first set the same year for all dates. Then I would start determining the difference between the days of these dates. Based on this you can also determine an average date just like the years.
I don't have any code right now, but I can help you brainstorm this idea ;)