Skip to content

Commit

Permalink
Fix rotation logic to properly clear calendar fields
Browse files Browse the repository at this point in the history
  • Loading branch information
dmlloyd committed Sep 12, 2012
1 parent 4e567d6 commit 46b4a26
Showing 1 changed file with 12 additions and 8 deletions.
Expand Up @@ -201,22 +201,26 @@ private void calcNextRollover(final long fromTime) {
switch (period) {
default:
case YEAR:
calendar.clear(Calendar.MONTH);
calendar.set(Calendar.MONTH, 0);
case MONTH:
calendar.clear(Calendar.DAY_OF_MONTH);
calendar.set(Calendar.DAY_OF_MONTH, 0);
calendar.clear(Calendar.WEEK_OF_MONTH);
case WEEK:
calendar.clear(Calendar.DAY_OF_WEEK);
if (period == Period.WEEK) {
calendar.set(Calendar.DAY_OF_WEEK, 0);
} else {
calendar.clear(Calendar.DAY_OF_WEEK);
}
calendar.clear(Calendar.DAY_OF_WEEK_IN_MONTH);
case DAY:
calendar.set(Calendar.HOUR_OF_DAY, 0);
case HALF_DAY:
calendar.clear(Calendar.HOUR);
calendar.set(Calendar.HOUR, 0);
case HOUR:
calendar.clear(Calendar.MINUTE);
calendar.set(Calendar.MINUTE, 0);
case MINUTE:
calendar.clear(Calendar.SECOND);
calendar.clear(Calendar.MILLISECOND);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
}
// increment the relevant field
switch (period) {
Expand All @@ -236,7 +240,7 @@ private void calcNextRollover(final long fromTime) {
calendar.add(Calendar.AM_PM, 1);
break;
case HOUR:
calendar.add(Calendar.HOUR, 1);
calendar.add(Calendar.HOUR_OF_DAY, 1);
break;
case MINUTE:
calendar.add(Calendar.MINUTE, 1);
Expand Down

0 comments on commit 46b4a26

Please sign in to comment.