@Override public DateTimeUnit getDateWithOffset( DateTimeUnit dateTimeUnit, int offset, Calendar calendar ) { return calendar.plusWeeks( dateTimeUnit, offset ); }
@Override protected DateTimeUnit getDateWithOffset( DateTimeUnit dateTimeUnit, int offset, Calendar calendar ) { return calendar.plusWeeks( dateTimeUnit, 2 * offset ); }
/** * Generates the last 26 bi-weeks where the last one is the week which the * given date is inside. */ @Override public List<Period> generateRollingPeriods( DateTimeUnit end, Calendar calendar ) { List<Period> periods = Lists.newArrayList(); DateTimeUnit date = adjustToStartOfBiWeek( end, calendar ); date = calendar.minusDays( date, 350 ); for ( int i = 0; i < 26; i++ ) { periods.add( createPeriod( date, calendar ) ); date = calendar.plusWeeks( date, 2 ); } return periods; }
/** * Generates the last 52 weeks where the last one is the week which the * given date is inside. */ @Override public List<Period> generateRollingPeriods( DateTimeUnit end, Calendar calendar ) { List<Period> periods = Lists.newArrayList(); DateTimeUnit iterationDateTimeUnit = adjustToStartOfWeek( end, calendar ); iterationDateTimeUnit = calendar.minusDays( iterationDateTimeUnit, 357 ); for ( int i = 0; i < 52; i++ ) { periods.add( createPeriod( iterationDateTimeUnit, calendar ) ); iterationDateTimeUnit = calendar.plusWeeks( iterationDateTimeUnit, 1 ); } return periods; }
/** * Generates bi-weekly Periods for the whole year in which the given Period's * startDate exists. */ @Override public List<Period> generatePeriods( DateTimeUnit start ) { Calendar calendar = getCalendar(); List<Period> periods = new ArrayList<>(); DateTimeUnit date = adjustToStartOfBiWeek( start, calendar ); date = adjustToStartOfBiWeek( calendar.fromIso( date.getYear(), 1, 1 ), calendar ); for ( int i = 0; i < calendar.weeksInYear( start.getYear() ) / 2; i++ ) { periods.add( createPeriod( date, calendar ) ); date = calendar.plusWeeks( date, 2 ); } return periods; }
/** * Generates weekly Periods for the whole year in which the given Period's * startDate exists. */ @Override public List<Period> generatePeriods( DateTimeUnit start ) { Calendar calendar = getCalendar(); List<Period> periods = new ArrayList<>(); start = new DateTimeUnit( start ); // create clone so we don't modify the original start DT start.setMonth( 1 ); start.setDay( 4 ); start = adjustToStartOfWeek( start, calendar ); for ( int i = 0; i < calendar.weeksInYear( start.getYear() ); i++ ) { DateInterval interval = calendar.toInterval( start, DateIntervalType.ISO8601_WEEK ); periods.add( new Period( this, interval.getFrom().toJdkDate(), interval.getTo().toJdkDate() ) ); start = calendar.plusWeeks( start, 1 ); } return periods; }