@Override public DateTimeUnit getDateWithOffset( DateTimeUnit dateTimeUnit, int offset, Calendar calendar ) { return calendar.plusDays( dateTimeUnit, offset ); }
/** * Generates the last 365 days where the last one is the day of the given * date. */ @Override public List<Period> generateRollingPeriods( DateTimeUnit dateTimeUnit, Calendar calendar ) { Calendar cal = getCalendar(); DateTimeUnit iterationDateTimeUnit = cal.minusDays( dateTimeUnit, 364 ); List<Period> periods = Lists.newArrayList(); for ( int i = 0; i < 365; i++ ) { periods.add( createPeriod( iterationDateTimeUnit, calendar ) ); iterationDateTimeUnit = cal.plusDays( iterationDateTimeUnit, 1 ); } return periods; }
/** * Generates daily Periods for the whole year in which the given Period's * startDate exists. */ @Override public List<Period> generatePeriods( DateTimeUnit dateTimeUnit ) { dateTimeUnit.setMonth( 1 ); dateTimeUnit.setDay( 1 ); List<Period> periods = Lists.newArrayList(); int year = dateTimeUnit.getYear(); Calendar calendar = getCalendar(); while ( year == dateTimeUnit.getYear() ) { periods.add( createPeriod( dateTimeUnit, calendar ) ); dateTimeUnit = calendar.plusDays( dateTimeUnit, 1 ); } return periods; }
@Override public Period createPeriod( DateTimeUnit dateTimeUnit, Calendar calendar ) { DateTimeUnit start = adjustToStartOfWeek( new DateTimeUnit( dateTimeUnit ), calendar ); DateTimeUnit end = new DateTimeUnit( start ); end = calendar.plusDays( end, calendar.daysInWeek() - 1 ); return toIsoPeriod( start, end, calendar ); }
@Override public Period createPeriod( DateTimeUnit dateTimeUnit, Calendar calendar ) { DateTimeUnit start = adjustToStartOfBiWeek( new DateTimeUnit( dateTimeUnit ), calendar ); DateTimeUnit end = new DateTimeUnit( start ); end = calendar.plusDays( end, calendar.daysInWeek() * 2 - 1 ); return toIsoPeriod( start, end, calendar ); }
/** * Adds the given amount of time to the given calendar field. * * @param field the calendar field. * @param amount the amount of time. */ public Cal add( int field, int amount ) { switch ( field ) { case Calendar.YEAR: dateTimeUnit = getCalendar().plusYears( dateTimeUnit, amount ); case Calendar.MONTH: dateTimeUnit = getCalendar().plusMonths( dateTimeUnit, amount ); case Calendar.DAY_OF_MONTH: case Calendar.DAY_OF_YEAR: dateTimeUnit = getCalendar().plusDays( dateTimeUnit, amount ); break; default: throw new UnsupportedOperationException(); } return this; }