/** * Returns a Period which is the previous of the given Period. Only valid * Periods are returned. If the given Period is of different PeriodType than * the executing PeriodType, or the given Period is invalid, the returned * Period might overlap the given Period. * * @param period the Period to base the previous Period on. * @return a Period which is the previous of the given Period. */ public final Period getPreviousPeriod( Period period ) { return getPreviousPeriod( period, getCalendar() ); }
/** * Returns the previous period determined by the given number of periods. * * @param period the Period to base the previous Period on. * @param periods the number of periods into the past. * @return the previous period. */ public Period getPreviousPeriod( Period period, int periods ) { Period previousPeriod = period; if ( periods > 0 ) { org.hisp.dhis.calendar.Calendar calendar = getCalendar(); for ( int i = 0; i < periods; i++ ) { previousPeriod = getPreviousPeriod( previousPeriod, calendar ); } } return previousPeriod; }
@Override public List<Period> getPeriods( Period lastPeriod, int historyLength ) { List<Period> periods = new ArrayList<>( historyLength ); lastPeriod = periodStore.reloadForceAddPeriod( lastPeriod ); PeriodType periodType = lastPeriod.getPeriodType(); for ( int i = 0; i < historyLength; ++i ) { Period pe = getPeriodFromDates( lastPeriod.getStartDate(), lastPeriod.getEndDate(), periodType ); periods.add( pe != null ? pe : lastPeriod ); lastPeriod = periodType.getPreviousPeriod( lastPeriod ); } Collections.reverse( periods ); return periods; }
/** * Returns the latest period which is open for data input. Returns null if * data element is not associated with any data sets. * * @return the latest period which is open for data input. */ public Period getLatestOpenFuturePeriod() { int periods = getOpenFuturePeriods(); PeriodType periodType = getPeriodType(); if ( periodType != null ) { Period period = periodType.createPeriod(); // Rewind one as 0 open periods implies current period is locked period = periodType.getPreviousPeriod( period ); return periodType.getNextPeriod( period, periods ); } return null; }
Period p = periodType.getPreviousPeriod( outputPeriod, skipCount ); p = periodType.getPreviousPeriod( p ); pPrev = periodType.getPreviousPeriod( pPrev ); pNext = periodType.getNextPeriod( pNext );
private Period getPeriod( SMSCommand command, Date date ) { Period period = null; period = command.getDataset().getPeriodType().createPeriod(); PeriodType periodType = period.getPeriodType(); if ( command.isCurrentPeriodUsedForReporting() ) { period = periodType.createPeriod( new Date() ); } else { period = periodType.getPreviousPeriod( period ); } if ( date != null ) { period = periodType.createPeriod( date ); } return period; }
.map( ValidationRule::getPeriodType ) .distinct() .map( ( vr ) -> Arrays.asList( vr.createPeriod(), vr.getPreviousPeriod( vr.createPeriod() ) ) ) .reduce( Lists.newArrayList(), ListUtils::union );