Example usage for org.joda.time Years yearsBetween

List of usage examples for org.joda.time Years yearsBetween

Introduction

In this page you can find the example usage for org.joda.time Years yearsBetween.

Prototype

public static Years yearsBetween(ReadablePartial start, ReadablePartial end) 

Source Link

Document

Creates a Years representing the number of whole years between the two specified partial datetimes.

Usage

From source file:edu.nyu.vida.data_polygamy.relationship_computation.CorrelationReducer.java

License:BSD License

public static TimeSeriesStats getStats(int temporal, TopologyTimeSeriesWritable timeSeries1,
        TopologyTimeSeriesWritable timeSeries2, boolean temporalPermutationTest) {

    TimeSeriesStats output = new TimeSeriesStats();

    if ((timeSeries1 == null) || (timeSeries2 == null))
        return output;

    // detecting intersection

    long start1 = timeSeries1.getStart();
    long end1 = timeSeries1.getEnd();
    long start2 = timeSeries2.getStart();
    long end2 = timeSeries2.getEnd();

    if (((end1 < start2) && (start1 < start2)) || ((end1 > end2) && (start1 > end2)))
        return output;

    output.setIntersect(true);/* w w  w . j a va2  s  .c o  m*/

    DateTime start1Obj = new DateTime(start1 * 1000, DateTimeZone.UTC);
    DateTime end1Obj = new DateTime(end1 * 1000, DateTimeZone.UTC);
    DateTime start2Obj = new DateTime(start2 * 1000, DateTimeZone.UTC);
    DateTime end2Obj = new DateTime(end2 * 1000, DateTimeZone.UTC);

    byte[] eventTimeSeries1 = timeSeries1.getTimeSeries();
    byte[] eventTimeSeries2 = timeSeries2.getTimeSeries();

    int startRange = 0;
    int endRange = 0;

    switch (temporal) {
    case FrameworkUtils.HOUR:
        startRange = (start1 > start2) ? Hours.hoursBetween(start2Obj, start1Obj).getHours()
                : Hours.hoursBetween(start1Obj, start2Obj).getHours();
        endRange = (end1 > end2) ? Hours.hoursBetween(end2Obj, end1Obj).getHours()
                : Hours.hoursBetween(end1Obj, end2Obj).getHours();
        break;
    case FrameworkUtils.DAY:
        startRange = (start1 > start2) ? Days.daysBetween(start2Obj, start1Obj).getDays()
                : Days.daysBetween(start1Obj, start2Obj).getDays();
        endRange = (end1 > end2) ? Days.daysBetween(end2Obj, end1Obj).getDays()
                : Days.daysBetween(end1Obj, end2Obj).getDays();
        break;
    case FrameworkUtils.WEEK:
        startRange = (start1 > start2) ? Weeks.weeksBetween(start2Obj, start1Obj).getWeeks()
                : Weeks.weeksBetween(start1Obj, start2Obj).getWeeks();
        endRange = (end1 > end2) ? Weeks.weeksBetween(end2Obj, end1Obj).getWeeks()
                : Weeks.weeksBetween(end1Obj, end2Obj).getWeeks();
        break;
    case FrameworkUtils.MONTH:
        startRange = (start1 > start2) ? Months.monthsBetween(start2Obj, start1Obj).getMonths()
                : Months.monthsBetween(start1Obj, start2Obj).getMonths();
        endRange = (end1 > end2) ? Months.monthsBetween(end2Obj, end1Obj).getMonths()
                : Months.monthsBetween(end1Obj, end2Obj).getMonths();
        break;
    case FrameworkUtils.YEAR:
        startRange = (start1 > start2) ? Years.yearsBetween(start2Obj, start1Obj).getYears()
                : Years.yearsBetween(start1Obj, start2Obj).getYears();
        endRange = (end1 > end2) ? Years.yearsBetween(end2Obj, end1Obj).getYears()
                : Years.yearsBetween(end1Obj, end2Obj).getYears();
        break;
    default:
        startRange = (start1 > start2) ? Hours.hoursBetween(start2Obj, start1Obj).getHours()
                : Hours.hoursBetween(start1Obj, start2Obj).getHours();
        endRange = (end1 > end2) ? Hours.hoursBetween(end2Obj, end1Obj).getHours()
                : Hours.hoursBetween(end1Obj, end2Obj).getHours();
        break;
    }

    int indexStart1 = (start2 > start1) ? startRange : 0;
    int indexStart2 = (start2 > start1) ? 0 : startRange;
    int indexEnd1 = (end2 > end1) ? eventTimeSeries1.length : eventTimeSeries1.length - endRange;
    int indexEnd2 = (end2 > end1) ? eventTimeSeries2.length - endRange : eventTimeSeries2.length;

    /*DateTime startIntersect = FrameworkUtils.addTime(temporal, indexStart1, start1Obj);
    if (!(startIntersect.isEqual(FrameworkUtils.addTime(temporal, indexStart2, start2Obj)))) {
    System.out.println("Something went wrong... Different starts");
    System.exit(-1);
    }*/

    byte[] timeSeries1Int = Arrays.copyOfRange(eventTimeSeries1, indexStart1, indexEnd1);
    byte[] timeSeries2Int = Arrays.copyOfRange(eventTimeSeries2, indexStart2, indexEnd2);

    if (timeSeries1Int.length != timeSeries2Int.length) {
        System.out.println("Something went wrong... Different sizes");
        System.exit(-1);
    }

    int nMatchEvents = 0;
    int nMatchPosEvents = 0;
    int nMatchNegEvents = 0;
    int nPosFirstNonSecond = 0;
    int nNegFirstNonSecond = 0;
    int nNonFirstPosSecond = 0;
    int nNonFirstNegSecond = 0;

    //String eventDateTime = null;
    int indexD1 = (temporalPermutationTest) ? new Random().nextInt(timeSeries1Int.length) : 0;
    int indexD2 = (temporalPermutationTest) ? new Random().nextInt(timeSeries2Int.length) : 0;
    for (int i = 0; i < timeSeries1Int.length; i++) {
        int j = (indexD1 + i) % timeSeries1Int.length;
        int k = (indexD2 + i) % timeSeries2Int.length;
        byte result = (byte) (timeSeries1Int[j] | timeSeries2Int[k]);

        //eventDateTime = FrameworkUtils.getTemporalStr(
        //        temporal, FrameworkUtils.addTime(temporal, j, startIntersect));

        switch (result) {
        case FrameworkUtils.nonEventsMatch: // both non events
            // do nothing
            break;
        case FrameworkUtils.posEventsMatch: // both positive
            nMatchEvents++;
            nMatchPosEvents++;
            //output.addMatchPosEvents(eventDateTime);
            break;
        case FrameworkUtils.nonEventPosEventMatch: // one positive, one non-event
            if (timeSeries1Int[j] == FrameworkUtils.positiveEvent)
                nPosFirstNonSecond++;
            else
                nNonFirstPosSecond++;
            break;
        case FrameworkUtils.negEventsMatch: // both negative
            nMatchEvents++;
            nMatchPosEvents++;
            //output.addMatchPosEvents(eventDateTime);
            break;
        case FrameworkUtils.nonEventNegEventMatch: // one negative, one non-event
            if (timeSeries1Int[j] == FrameworkUtils.negativeEvent)
                nNegFirstNonSecond++;
            else
                nNonFirstNegSecond++;
            break;
        case FrameworkUtils.negEventPosEventMatch: // one negative, one positive
            nMatchEvents++;
            nMatchNegEvents++;
            //output.addMatchNegEvents(eventDateTime);
            break;
        default:
            System.out.println("Something went wrong... Wrong case");
            System.exit(-1);
        }
    }

    output.setParameters(nMatchEvents, nMatchPosEvents, nMatchNegEvents, nPosFirstNonSecond, nNegFirstNonSecond,
            nNonFirstPosSecond, nNonFirstNegSecond);

    return output;
}

From source file:edu.nyu.vida.data_polygamy.utils.FrameworkUtils.java

License:BSD License

public static int getTimeSteps(int tempRes, int startTime, int endTime) {

    if (startTime > endTime) {
        return 0;
    }/*from  ww  w  . java  2  s. c  om*/

    int timeSteps = 0;
    DateTime start = new DateTime(((long) startTime) * 1000, DateTimeZone.UTC);
    DateTime end = new DateTime(((long) endTime) * 1000, DateTimeZone.UTC);

    switch (tempRes) {
    case FrameworkUtils.HOUR:
        timeSteps = Hours.hoursBetween(start, end).getHours();
        break;
    case FrameworkUtils.DAY:
        timeSteps = Days.daysBetween(start, end).getDays();
        break;
    case FrameworkUtils.WEEK:
        timeSteps = Weeks.weeksBetween(start, end).getWeeks();
        break;
    case FrameworkUtils.MONTH:
        timeSteps = Months.monthsBetween(start, end).getMonths();
        break;
    case FrameworkUtils.YEAR:
        timeSteps = Years.yearsBetween(start, end).getYears();
        break;
    default:
        timeSteps = Hours.hoursBetween(start, end).getHours();
        break;
    }
    timeSteps++;

    return timeSteps;
}

From source file:edu.psu.iam.cpr.core.database.tables.validate.ValidateDateOfBirth.java

License:Apache License

/**
 * This routine is used to validate that the age associated with the date of birth is valid.
 * @param dateOfBirth will accept a full date of birth mm/dd/yyyy
 * @return will return true if the age is valid, otherwise it will return false.
 *///from  w  w w . ja va  2  s  . c om
private static boolean isAgeValid(final String dateOfBirth) {

    final String[] dobParts = dateOfBirth.split("/");
    int month;
    int day;
    int year;

    try {
        month = Integer.valueOf(dobParts[0]);
        day = Integer.valueOf(dobParts[1]);
        year = Integer.valueOf(dobParts[2]);
    } catch (NumberFormatException e) {
        return false;
    }

    final DateTime birthDate = new DateTime(year, month, day, 0, 0).withTimeAtStartOfDay();
    final DateTime now = new DateTime();
    int age = Years.yearsBetween(birthDate, now).getYears();

    return (age <= ZERO_YEARS_OLD || age >= ONE_FIVE_ZERO_YEARS_OLD) ? false : true;
}

From source file:edu.psu.iam.cpr.ip.ui.action.ContactInfoAction.java

License:Creative Commons License

@Override
@Action(value = "contact_info", results = { @Result(name = SUCCESS, location = "/verify_info", type = REDIRECT),
        @Result(name = "VerifyInfo", location = "/verify_info", type = REDIRECT),
        @Result(name = "stay on page", location = "/jsp/contactInformation.jsp"),
        @Result(name = "verify", location = "/verify_info", type = REDIRECT),
        @Result(name = "failure", location = "/jsp/endPage.jsp") })

public String execute() {
    if (!setup("con")) {
        return FAILURE;
    }/*w w  w  .  j av  a  2s.  c o  m*/

    log.debug(String.format("%s ", getUniqueId()));

    phoneType = "PERMANENT_PHONE";
    emailType = "OTHER_EMAIL";

    String returnLocation = "success";

    if (FieldUtility.fieldIsNotPresent(getBtnsubmit())) {
        returnLocation = STAY_ON_PAGE;
    }

    // Reformat DOB to the correct format.
    if (getDob() != null) {
        String[] parts = getDob().split("/");
        final int month = Integer.parseInt(parts[0]);
        final int day = Integer.parseInt(parts[1]);
        final int year = Integer.parseInt(parts[2]);
        setDob(String.format("%02d/%02d/%04d", month, day, year));

        Years age = Years.yearsBetween(new LocalDate(year, month, day), new LocalDate());

        if (age.getYears() < 13) {
            returnLocation = STAY_ON_PAGE;
            addActionMessage("You must be 13 years old or older to create a IAM Testbed Username.");
        }
    }

    // Save form data to session
    saveFieldsToSession(getPrefix());

    return filterSuccess(returnLocation);
}

From source file:edu.uiowa.icts.bluebutton.json.Demographics.java

License:Apache License

@JsonIgnore
public Double getAge() {
    if (this.dob != null) {
        return new Double(Years.yearsBetween(DateRange.PARSER_FORMAT.parseLocalDate(this.dob), new LocalDate())
                .getYears());/* w w  w  . j ava 2  s  . c om*/
    } else {
        return new Double(-1);
    }
}

From source file:eu.eidas.auth.commons.DateUtil.java

License:Open Source License

/**
 * Calculates the age for a given date string.
 *
 * @param dateVal The date to be validated.
 * @param now The current date./*from   w w w .  ja v  a  2s  .c om*/
 * @param pattern The date pattern.
 *
 * @return The age value.
 */
public static int calculateAge(final String dateVal, final DateTime now, final String pattern) {

    if (isValidFormatDate(dateVal, pattern)) {
        try {
            final String dateValueTemp = fulfilDate(dateVal);
            final DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern);
            final DateTime dateTime = fmt.parseDateTime(dateValueTemp);
            // Calculating age
            final Years age = Years.yearsBetween(dateTime, now);

            return age.getYears();
        } catch (final IllegalArgumentException e) {
            LOG.info("BUSINESS EXCEPTION : Invalid date format (" + pattern + ") or an invalid dateValue.");
            throw new SecurityEIDASException(EidasErrors.get(EidasErrorKey.INVALID_ATTRIBUTE_VALUE.errorCode()),
                    EidasErrors.get(EidasErrorKey.INVALID_ATTRIBUTE_VALUE.errorMessage()), e);
        }
    } else {
        LOG.info("BUSINESS EXCEPTION : Couldn't calculate Age, invalid date!");
        throw new SecurityEIDASException(EidasErrors.get(EidasErrorKey.INVALID_ATTRIBUTE_VALUE.errorCode()),
                EidasErrors.get(EidasErrorKey.INVALID_ATTRIBUTE_VALUE.errorMessage()));
    }

}

From source file:eu.stork.peps.auth.commons.DateUtil.java

License:Open Source License

/**
 * Calculates the age for a given date string.
 * //  ww w.ja  v  a2 s  .c o  m
 * @param dateVal The date to be validated.
 * @param now The current date.
 * @param pattern The date pattern.
 * 
 * @return The age value.
 */
public static int calculateAge(final String dateVal, final DateTime now, final String pattern) {

    if (DateUtil.isValidFormatDate(dateVal, pattern)) {
        try {
            final String dateValueTemp = DateUtil.fulfilDate(dateVal);
            final DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern);
            final DateTime dateTime = fmt.parseDateTime(dateValueTemp);
            // Calculating age
            final Years age = Years.yearsBetween(dateTime, now);

            return age.getYears();
        } catch (final IllegalArgumentException e) {
            LOG.warn("Invalid date format (" + pattern + ") or an invalid dateValue.");
            throw new SecurityPEPSException(PEPSUtil.getConfig(PEPSErrors.INVALID_ATTRIBUTE_VALUE.errorCode()),
                    PEPSUtil.getConfig(PEPSErrors.INVALID_ATTRIBUTE_VALUE.errorMessage()), e);
        }
    } else {
        LOG.warn("Couldn't calculate Age, invalid date!");
        throw new SecurityPEPSException(PEPSUtil.getConfig(PEPSErrors.INVALID_ATTRIBUTE_VALUE.errorCode()),
                PEPSUtil.getConfig(PEPSErrors.INVALID_ATTRIBUTE_VALUE.errorMessage()));
    }

}

From source file:eu.uqasar.model.user.User.java

License:Apache License

public Integer getAge() {
    if (this.birthDay != null) {
        DateTime start = new DateTime(this.birthDay);
        DateTime end = DateTime.now();/*w  ww .  j a  va  2  s .co m*/
        return Years.yearsBetween(start.toLocalDate(), end.toLocalDate()).getYears();
    }
    return null;
}

From source file:facebookpostpuller.PostModel.java

public static int calculateAge(Date inputBirthdate) {
    DateTime birthdate = new DateTime(inputBirthdate);
    DateTime now = new DateTime();
    Years age = Years.yearsBetween(birthdate, now);
    return age.getYears();
}

From source file:femr.util.calculations.dateUtils.java

License:Open Source License

public static int calculateYears(Date age) {

    LocalDate birthdate = new LocalDate(age);
    LocalDate now = new LocalDate();
    Years years = Years.yearsBetween(birthdate, now);
    return years.getYears();
}