Example usage for org.joda.time DateTime plusYears

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

Introduction

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

Prototype

public DateTime plusYears(int years) 

Source Link

Document

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

Usage

From source file:TVShowTimelineMaker.timeConstraints.AgeConstraint.java

public boolean consistentWithConstraint(DateTime inFirstDay, DateTime inSecondDay) {
    DateTime lowerBoundOnBirthDay = inSecondDay.minusYears(this.upperBound).withHourOfDay(1);
    DateTime upperBoundOnBirthDay = inSecondDay.minusYears(this.lowerBound).withHourOfDay(23);
    DateTime lowerBoundOnEvent = inFirstDay.plusYears(this.lowerBound).withHourOfDay(1);
    DateTime upperBoundOnEvent = inFirstDay.plusYears(this.upperBound).withHourOfDay(23);
    return !inFirstDay.isBefore(lowerBoundOnBirthDay) && !inFirstDay.isAfter(upperBoundOnBirthDay)
            && !inSecondDay.isBefore(lowerBoundOnEvent) && !inSecondDay.isAfter(upperBoundOnEvent);
}

From source file:TVShowTimelineMaker.timeConstraints.AgeConstraint.java

@Override
public Event[] increaseWhat(Placement inValues[]) {
    DateTime inFirstStartTime;//from   ww w  . j  a  va 2  s.  c  o  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.upperBound).withHourOfDay(1);
    DateTime upperBoundOnBirthDay = inSecondStartTime.minusYears(this.lowerBound).withHourOfDay(23);
    DateTime lowerBoundOnEvent = inFirstEndTime.plusYears(this.lowerBound).withHourOfDay(1);
    DateTime upperBoundOnEvent = inFirstEndTime.plusYears(this.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

public boolean consistentWithConstraint(DateTime inFirstDay, DateTime inSecondDay) {
    DateTime lowerBoundOnBirthDay = inSecondDay.minusYears(this.mAgeGroup.upperBound).withHourOfDay(1);
    DateTime upperBoundOnBirthDay = inSecondDay.minusYears(this.mAgeGroup.lowerBound).withHourOfDay(23);
    DateTime lowerBoundOnEvent = inFirstDay.plusYears(this.mAgeGroup.lowerBound).withHourOfDay(1);
    DateTime upperBoundOnEvent = inFirstDay.plusYears(this.mAgeGroup.upperBound).withHourOfDay(23);
    return !inFirstDay.isBefore(lowerBoundOnBirthDay) && !inFirstDay.isAfter(upperBoundOnBirthDay)
            && !inSecondDay.isBefore(lowerBoundOnEvent) && !inSecondDay.isAfter(upperBoundOnEvent);
}

From source file:TVShowTimelineMaker.timeConstraints.AgeGroupConstraint.java

@Override
public Event[] increaseWhat(Placement<?> inValues[]) {
    DateTime inFirstStartTime;/*w ww. j  a v  a2  s  .c o 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 ww w. java  2 s .  c o  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 complexApplyConstraint() {
    boolean changed = super.complexApplyConstraint();
    if (this.mCharacterRelationKind.equals(CharacterRelationKind.MOTHER)) {
        if ((!this.mFirstNamedCharacter.getBirthday().isMarkedForComplexEval())
                && this.mSecondNamedCharacter.getBirthday().isMarkedForComplexEval()) {
            this.mFirstNamedCharacter.getBirthday().setUpForComplexEval();
        }/*  w  w  w.  j a  va 2 s  . c  om*/
        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;
}