TimeGroupBy now calculates groups for months using the java Calendar object rather than assuming there are 30 days in each month.