@Override public Date getRewindedDate( Date date, Integer rewindedPeriods ) { Calendar calendar = getCalendar(); date = date != null ? date : new Date(); rewindedPeriods = rewindedPeriods != null ? rewindedPeriods : 1; DateTimeUnit dateTimeUnit = createLocalDateUnitInstance( date ); dateTimeUnit = calendar.minusYears( dateTimeUnit, rewindedPeriods ); return calendar.toIso( dateTimeUnit ).toJdkDate(); } }
/** * Generates yearly periods for the last 5, current and next 5 years. */ @Override public List<Period> generatePeriods( DateTimeUnit dateTimeUnit ) { Calendar calendar = getCalendar(); dateTimeUnit = calendar.minusYears( dateTimeUnit, 5 ); dateTimeUnit.setDay( 1 ); dateTimeUnit.setMonth( 1 ); List<Period> periods = Lists.newArrayList(); for ( int i = 0; i < 11; ++i ) { periods.add( createPeriod( dateTimeUnit, calendar ) ); dateTimeUnit = calendar.plusYears( dateTimeUnit, 1 ); } return periods; }
/** * Generates the last 5 years where the last one is the year which the given * date is inside. */ @Override public List<Period> generateLast5Years( Date date ) { Calendar calendar = getCalendar(); DateTimeUnit dateTimeUnit = createLocalDateUnitInstance( date ); dateTimeUnit = calendar.minusYears( dateTimeUnit, 4 ); dateTimeUnit.setDay( 1 ); dateTimeUnit.setMonth( 1 ); List<Period> periods = Lists.newArrayList(); for ( int i = 0; i < 5; ++i ) { periods.add( createPeriod( dateTimeUnit, calendar ) ); dateTimeUnit = calendar.plusYears( dateTimeUnit, 1 ); } return periods; }