Example usage for org.joda.time DateTime minusYears

List of usage examples for org.joda.time DateTime minusYears

Introduction

In this page you can find the example usage for org.joda.time DateTime minusYears.

Prototype

public DateTime minusYears(int years) 

Source Link

Document

Returns a copy of this datetime minus the specified number of years.

Usage

From source file:TVShowTimelineMaker.timeConstraints.AgeGroupConstraint.java

@Override
public Event[] increaseWhat(Placement<?> inValues[]) {
    DateTime inFirstStartTime;/*from  w w w .ja v a2 s.co m*/
    DateTime inFirstEndTime;
    DateTime inSecondStartTime;
    DateTime inSecondEndTime;
    if (this.mCharacter.getBirthday() instanceof OnceDayEvent) {
        OnceDayEvent.OnceDayEventPlacement curOnceDayEventPlacement = (OnceDayEvent.OnceDayEventPlacement) inValues[0];
        inFirstStartTime = curOnceDayEventPlacement.day;
        inFirstEndTime = curOnceDayEventPlacement.day;
    } else {
        OncePeriodEvent.OncePeriodEventPlacement curOncePeriodEventPlacement = (OncePeriodEvent.OncePeriodEventPlacement) inValues[0];
        inFirstStartTime = curOncePeriodEventPlacement.startDay;
        inFirstEndTime = curOncePeriodEventPlacement.endDay;
    }
    if (this.mAtEvent instanceof OnceDayEvent) {
        OnceDayEvent.OnceDayEventPlacement curOnceDayEventPlacement = (OnceDayEvent.OnceDayEventPlacement) inValues[1];
        inSecondStartTime = curOnceDayEventPlacement.day;
        inSecondEndTime = curOnceDayEventPlacement.day;
    } else {
        OncePeriodEvent.OncePeriodEventPlacement curOncePeriodEventPlacement = (OncePeriodEvent.OncePeriodEventPlacement) inValues[1];
        inSecondStartTime = curOncePeriodEventPlacement.startDay;
        inSecondEndTime = curOncePeriodEventPlacement.endDay;
    }
    DateTime lowerBoundOnBirthDay = inSecondStartTime.minusYears(this.mAgeGroup.upperBound).withHourOfDay(1);
    DateTime upperBoundOnBirthDay = inSecondStartTime.minusYears(this.mAgeGroup.lowerBound).withHourOfDay(23);
    DateTime lowerBoundOnEvent = inFirstEndTime.plusYears(this.mAgeGroup.lowerBound).withHourOfDay(1);
    DateTime upperBoundOnEvent = inFirstEndTime.plusYears(this.mAgeGroup.upperBound).withHourOfDay(23);
    if (inFirstEndTime.isBefore(lowerBoundOnBirthDay) || inSecondStartTime.isAfter(upperBoundOnEvent)) {
        return new Event[] { this.mCharacter.getBirthday() };
    }
    if (inFirstEndTime.isAfter(upperBoundOnBirthDay) || inSecondStartTime.isBefore(lowerBoundOnEvent)) {
        return new Event[] { this.mAtEvent };
    }
    return new Event[] {};
}

From source file:TVShowTimelineMaker.timeConstraints.AgeGroupConstraint.java

@Override
public boolean complexApplyConstraint() {
    boolean changed = this.applyConstraint();
    OnceDayEvent birthDay = this.mCharacter.getBirthday();
    if ((!birthDay.isMarkedForComplexEval()) && this.mAtEvent.isMarkedForComplexEval()) {
        birthDay.setUpForComplexEval();//from   w ww.j  av  a 2  s  . co m
    }
    if (birthDay.isMarkedForComplexEval() && (!this.mAtEvent.isMarkedForComplexEval())) {
        this.mAtEvent.setUpForComplexEval();
    }
    if (birthDay.isMarkedForComplexEval() && this.mAtEvent.isMarkedForComplexEval()) {
        NavigableSet<DateTime> birthDayDates = birthDay.getPossibleDays();
        NavigableSet<DateTime> EventAtDates = this.mAtEvent.getPossibleDays();
        DateTime lowerBoundOnBirthDay = EventAtDates.first().minusYears(this.mAgeGroup.upperBound)
                .withHourOfDay(1);
        DateTime upperBoundOnBirthDay = EventAtDates.first().minusYears(this.mAgeGroup.lowerBound)
                .withHourOfDay(23);
        Iterator<DateTime> birthDayIterator = birthDayDates.iterator();
        Iterator<DateTime> EventAtDatesIterator = EventAtDates.iterator();
        DateTime curBirthDay = birthDayIterator.next();
        DateTime curEventAtDate = EventAtDatesIterator.next();
        boolean cont = true;
        //while (birthDayIterator.hasNext()) {
        while (cont) {
            if (curBirthDay.isBefore(lowerBoundOnBirthDay)) {
                birthDayIterator.remove();
                if (birthDayIterator.hasNext()) {
                    curBirthDay = birthDayIterator.next();
                } else {
                    cont = false;
                }
                changed = true;
            } else if (curBirthDay.isAfter(upperBoundOnBirthDay)) {
                if (EventAtDatesIterator.hasNext()) {
                    curEventAtDate = EventAtDatesIterator.next();
                    lowerBoundOnBirthDay = curEventAtDate.minusYears(this.mAgeGroup.upperBound)
                            .withHourOfDay(1);
                    upperBoundOnBirthDay = curEventAtDate.minusYears(this.mAgeGroup.lowerBound)
                            .withHourOfDay(23);
                } else {
                    birthDayIterator.remove();
                    if (birthDayIterator.hasNext()) {
                        curBirthDay = birthDayIterator.next();
                    } else {
                        cont = false;
                    }
                    changed = true;
                }
            } else {
                if (birthDayIterator.hasNext()) {
                    curBirthDay = birthDayIterator.next();
                } else {
                    cont = false;
                }
            }
        }
        birthDayIterator = birthDayDates.iterator();
        EventAtDatesIterator = EventAtDates.iterator();
        curBirthDay = birthDayIterator.next();
        curEventAtDate = EventAtDatesIterator.next();
        cont = true;
        DateTime lowerBoundOnEvent = birthDayDates.first().plusYears(this.mAgeGroup.lowerBound)
                .withHourOfDay(1);
        DateTime upperBoundOnEvent = birthDayDates.first().plusYears(this.mAgeGroup.upperBound)
                .withHourOfDay(23);
        while (cont) {
            if (curEventAtDate.isBefore(lowerBoundOnEvent)) {
                EventAtDatesIterator.remove();
                if (EventAtDatesIterator.hasNext()) {
                    curEventAtDate = EventAtDatesIterator.next();
                } else {
                    cont = false;
                }
                changed = true;
            } else if (curEventAtDate.isAfter(upperBoundOnEvent)) {
                if (birthDayIterator.hasNext()) {
                    curBirthDay = birthDayIterator.next();
                    lowerBoundOnEvent = curBirthDay.plusYears(this.mAgeGroup.lowerBound).withHourOfDay(1);
                    upperBoundOnEvent = curBirthDay.plusYears(this.mAgeGroup.upperBound).withHourOfDay(23);
                } else {
                    EventAtDatesIterator.remove();
                    if (EventAtDatesIterator.hasNext()) {
                        curEventAtDate = EventAtDatesIterator.next();
                    } else {
                        cont = false;
                    }
                    changed = true;
                }
            } else {
                if (EventAtDatesIterator.hasNext()) {
                    curEventAtDate = EventAtDatesIterator.next();
                } else {
                    cont = false;
                }
            }
        }
    }
    return changed;
}

From source file:TVShowTimelineMaker.timeConstraints.CharacterRelation.java

@Override
public boolean consistentWithConstraint(DateTime inFirstDay, DateTime inSecondDay) {
    boolean con = super.consistentWithConstraint(inFirstDay, inSecondDay);
    if (con) {/*from   w  ww .  j a v a2 s . co  m*/
        if (this.mCharacterRelationKind.equals(CharacterRelationKind.MOTHER)) {
            DateTime lowerBoundOnBirthDay1 = inSecondDay.minusYears(START_OF_MENOPAUSE).withHourOfDay(1);
            DateTime upperBoundOnBirthDay1 = inSecondDay.minus(this.mCharacterRelationKind.mPeriod)
                    .withHourOfDay(23);
            con = inFirstDay.isAfter(lowerBoundOnBirthDay1) && inFirstDay.isBefore(upperBoundOnBirthDay1);
        }
    }
    return con;
}

From source file:TVShowTimelineMaker.timeConstraints.CharacterRelation.java

@Override
public boolean complexApplyConstraint() {
    boolean changed = super.complexApplyConstraint();
    if (this.mCharacterRelationKind.equals(CharacterRelationKind.MOTHER)) {
        if ((!this.mFirstNamedCharacter.getBirthday().isMarkedForComplexEval())
                && this.mSecondNamedCharacter.getBirthday().isMarkedForComplexEval()) {
            this.mFirstNamedCharacter.getBirthday().setUpForComplexEval();
        }/*from   ww  w  .  j  a  v a  2 s  . c o m*/
        if (this.mFirstNamedCharacter.getBirthday().isMarkedForComplexEval()
                && (!this.mSecondNamedCharacter.getBirthday().isMarkedForComplexEval())) {
            this.mSecondNamedCharacter.getBirthday().setUpForComplexEval();
        }
        if (this.mFirstNamedCharacter.getBirthday().isMarkedForComplexEval()
                && this.mSecondNamedCharacter.getBirthday().isMarkedForComplexEval()) {
            NavigableSet<DateTime> firstEpisodeDates = this.mFirstNamedCharacter.getBirthday()
                    .getPossibleDays();
            NavigableSet<DateTime> secondEpisodeDates = this.mSecondNamedCharacter.getBirthday()
                    .getPossibleDays();
            DateTime lowerBoundOnBirthDay1 = secondEpisodeDates.first().minusYears(START_OF_MENOPAUSE)
                    .withHourOfDay(1);
            DateTime upperBoundOnBirthDay1 = secondEpisodeDates.first()
                    .minus(this.mCharacterRelationKind.mPeriod).withHourOfDay(23);
            Iterator<DateTime> firstEpisodeDatesIterator = firstEpisodeDates.iterator();
            Iterator<DateTime> secondEpisodeDatesIterator = secondEpisodeDates.iterator();
            DateTime curFirstEpisodeDate = firstEpisodeDatesIterator.next();
            DateTime curSecondEpisodeDate = secondEpisodeDatesIterator.next();
            boolean cont = true;
            //while (indexInToFirstEpisodeDatesDates < firstEpisodeDates.size()) {
            while (cont) {
                if (curFirstEpisodeDate.isBefore(lowerBoundOnBirthDay1)) {
                    firstEpisodeDatesIterator.remove();
                    if (firstEpisodeDatesIterator.hasNext()) {
                        curFirstEpisodeDate = firstEpisodeDatesIterator.next();
                    } else {
                        cont = false;
                    }
                    changed = true;
                } else if (curFirstEpisodeDate.isAfter(upperBoundOnBirthDay1)) {
                    if (secondEpisodeDatesIterator.hasNext()) {
                        curSecondEpisodeDate = secondEpisodeDatesIterator.next();
                        lowerBoundOnBirthDay1 = curSecondEpisodeDate.minusYears(START_OF_MENOPAUSE)
                                .withHourOfDay(1);
                        upperBoundOnBirthDay1 = curSecondEpisodeDate.minus(this.mCharacterRelationKind.mPeriod)
                                .withHourOfDay(23);
                    } else {
                        firstEpisodeDatesIterator.remove();
                        if (firstEpisodeDatesIterator.hasNext()) {
                            curFirstEpisodeDate = firstEpisodeDatesIterator.next();
                        } else {
                            cont = false;
                        }
                        changed = true;
                    }
                } else {
                    if (firstEpisodeDatesIterator.hasNext()) {
                        curFirstEpisodeDate = firstEpisodeDatesIterator.next();
                    } else {
                        cont = false;
                    }
                }
            }
            firstEpisodeDatesIterator = firstEpisodeDates.iterator();
            secondEpisodeDatesIterator = secondEpisodeDates.iterator();
            curFirstEpisodeDate = firstEpisodeDatesIterator.next();
            curSecondEpisodeDate = secondEpisodeDatesIterator.next();
            cont = true;
            DateTime lowerBoundOnBirthDay2 = firstEpisodeDates.first().plus(this.mCharacterRelationKind.mPeriod)
                    .withHourOfDay(1);
            DateTime upperBoundOnBirthDay2 = firstEpisodeDates.first().plusYears(START_OF_MENOPAUSE)
                    .withHourOfDay(23);
            while (cont) {
                if (curSecondEpisodeDate.isBefore(lowerBoundOnBirthDay2)) {
                    secondEpisodeDatesIterator.remove();
                    if (secondEpisodeDatesIterator.hasNext()) {
                        curSecondEpisodeDate = secondEpisodeDatesIterator.next();
                    } else {
                        cont = false;
                    }
                    changed = true;
                } else if (curSecondEpisodeDate.isAfter(upperBoundOnBirthDay2)) {
                    if (firstEpisodeDatesIterator.hasNext()) {
                        curFirstEpisodeDate = firstEpisodeDatesIterator.next();
                        lowerBoundOnBirthDay2 = curFirstEpisodeDate.plus(this.mCharacterRelationKind.mPeriod)
                                .withHourOfDay(1);
                        upperBoundOnBirthDay2 = curFirstEpisodeDate.plusYears(START_OF_MENOPAUSE)
                                .withHourOfDay(23);
                    } else {
                        secondEpisodeDatesIterator.remove();
                        if (secondEpisodeDatesIterator.hasNext()) {
                            curSecondEpisodeDate = secondEpisodeDatesIterator.next();
                        } else {
                            cont = false;
                        }
                        changed = true;
                    }
                } else {
                    if (secondEpisodeDatesIterator.hasNext()) {
                        curSecondEpisodeDate = secondEpisodeDatesIterator.next();
                    } else {
                        cont = false;
                    }
                }
            }
        }
    }
    return changed;
}

From source file:TVShowTimelineMaker.timeConstraints.CharacterRelation.java

@Override
public boolean consistentWithConstraint(Placement[] inValues) {
    boolean consistent = super.consistentWithConstraint(inValues);
    DateTime inFirstStartTime;//from ww w  .j  a  va 2 s  .c  o m
    DateTime inFirstEndTime;
    DateTime inSecondStartTime;
    DateTime inSecondEndTime;
    if (this.mFirstNamedCharacter.getBirthday() instanceof OnceDayEvent) {
        OnceDayEvent.OnceDayEventPlacement curOnceDayEventPlacement = (OnceDayEvent.OnceDayEventPlacement) inValues[0];
        inFirstStartTime = curOnceDayEventPlacement.day;
        inFirstEndTime = curOnceDayEventPlacement.day;
    } else {
        OncePeriodEvent.OncePeriodEventPlacement curOncePeriodEventPlacement = (OncePeriodEvent.OncePeriodEventPlacement) inValues[0];
        inFirstStartTime = curOncePeriodEventPlacement.startDay;
        inFirstEndTime = curOncePeriodEventPlacement.endDay;
    }
    if (this.mSecondNamedCharacter.getBirthday() instanceof OnceDayEvent) {
        OnceDayEvent.OnceDayEventPlacement curOnceDayEventPlacement = (OnceDayEvent.OnceDayEventPlacement) inValues[1];
        inSecondStartTime = curOnceDayEventPlacement.day;
        inSecondEndTime = curOnceDayEventPlacement.day;
    } else {
        OncePeriodEvent.OncePeriodEventPlacement curOncePeriodEventPlacement = (OncePeriodEvent.OncePeriodEventPlacement) inValues[1];
        inSecondStartTime = curOncePeriodEventPlacement.startDay;
        inSecondEndTime = curOncePeriodEventPlacement.endDay;
    }
    if (consistent) {
        if (this.mCharacterRelationKind.equals(CharacterRelationKind.MOTHER)) {
            DateTime lowerBoundOnBirthDay1 = inSecondStartTime.minusYears(START_OF_MENOPAUSE).withHourOfDay(1);
            DateTime upperBoundOnBirthDay1 = inSecondStartTime.minus(this.mCharacterRelationKind.mPeriod)
                    .withHourOfDay(23);
            consistent = inFirstEndTime.isAfter(lowerBoundOnBirthDay1)
                    && inFirstEndTime.isBefore(upperBoundOnBirthDay1);
        }
    }
    return consistent;
}

From source file:TVShowTimelineMaker.timeConstraints.CharacterRelation.java

@Override
public Event[] increaseWhat(Placement inValues[]) {
    Event[] rValue = super.increaseWhat(inValues);
    DateTime inFirstStartTime;/*  w w w  .  ja  va2s .  com*/
    DateTime inFirstEndTime;
    DateTime inSecondStartTime;
    DateTime inSecondEndTime;
    if (this.mFirstNamedCharacter.getBirthday() instanceof OnceDayEvent) {
        OnceDayEvent.OnceDayEventPlacement curOnceDayEventPlacement = (OnceDayEvent.OnceDayEventPlacement) inValues[0];
        inFirstStartTime = curOnceDayEventPlacement.day;
        inFirstEndTime = curOnceDayEventPlacement.day;
    } else {
        OncePeriodEvent.OncePeriodEventPlacement curOncePeriodEventPlacement = (OncePeriodEvent.OncePeriodEventPlacement) inValues[0];
        inFirstStartTime = curOncePeriodEventPlacement.startDay;
        inFirstEndTime = curOncePeriodEventPlacement.endDay;
    }
    if (this.mSecondNamedCharacter.getBirthday() instanceof OnceDayEvent) {
        OnceDayEvent.OnceDayEventPlacement curOnceDayEventPlacement = (OnceDayEvent.OnceDayEventPlacement) inValues[1];
        inSecondStartTime = curOnceDayEventPlacement.day;
        inSecondEndTime = curOnceDayEventPlacement.day;
    } else {
        OncePeriodEvent.OncePeriodEventPlacement curOncePeriodEventPlacement = (OncePeriodEvent.OncePeriodEventPlacement) inValues[1];
        inSecondStartTime = curOncePeriodEventPlacement.startDay;
        inSecondEndTime = curOncePeriodEventPlacement.endDay;
    }
    if (rValue.length == 0) {
        if (this.mCharacterRelationKind.equals(CharacterRelationKind.MOTHER)) {
            DateTime lowerBoundOnBirthDay1 = inSecondStartTime.minusYears(START_OF_MENOPAUSE).withHourOfDay(1);
            DateTime upperBoundOnBirthDay1 = inSecondStartTime.minus(this.mCharacterRelationKind.mPeriod)
                    .withHourOfDay(23);
            if (!inFirstEndTime.isAfter(lowerBoundOnBirthDay1)) {
                rValue = new Event[] { this.getFirstEvent() };
            }
            if (!inFirstEndTime.isBefore(upperBoundOnBirthDay1)) {
                rValue = new Event[] { this.getSecondEvent() };
            }
        }
    }
    return rValue;
}

From source file:uk.org.rbc1b.roms.db.volunteer.HibernateVolunteerDao.java

License:Open Source License

@Override
public List<Volunteer> findVolunteersWhoNeedToSubmitLDCForm(VolunteerSearchCriteria searchCriteria) {
    Session session = this.sessionFactory.getCurrentSession();
    Criteria criteria = createVolunteerSearchCriteria(searchCriteria, session);

    criteria.add(Restrictions.eq("submitNewLDCFormEmailSent", false));

    DateTime twoAndHalfYearsInPast = new DateTime();
    twoAndHalfYearsInPast = twoAndHalfYearsInPast.minusYears(2);
    twoAndHalfYearsInPast = twoAndHalfYearsInPast.minusMonths(6);

    Date twoAndHalfYearsDate = DataConverterUtil.toSqlDate(twoAndHalfYearsInPast);

    criteria.add(/*from  ww w . j  av  a 2  s  .  c  o m*/
            Restrictions.or(Restrictions.isNull("formDate"), Restrictions.le("formDate", twoAndHalfYearsDate)));

    if (searchCriteria.getMaxResults() != null) {
        criteria.setMaxResults(searchCriteria.getMaxResults());
    }

    criteria.addOrder(Order.asc("person.personId"));

    return criteria.list();
}