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:net.jazdw.rql.parser.listfilter.Person.java

License:Open Source License

public int getAge() {
    Years years = Years.yearsBetween(dateOfBirth, new DateTime());
    return years.getYears();
}

From source file:net.sf.jasperreports.functions.standard.DateTimeFunctions.java

License:Open Source License

/**
 * Returns the number of years between two dates.
 */// ww  w  .j  av a  2 s.  co  m
@Function("YEARS")
@FunctionParameters({ @FunctionParameter("startDate"), @FunctionParameter("endDate") })
public Integer YEARS(Object startDate, Object endDate) {
    Date startDateObj = convertDateObject(startDate);
    if (startDateObj == null) {
        logCannotConvertToDate();
        return null;
    }
    Date endDateObj = convertDateObject(endDate);
    if (endDateObj == null) {
        logCannotConvertToDate();
        return null;
    } else {
        DateTime dt1 = new DateTime(startDateObj);
        DateTime dt2 = new DateTime(endDateObj);
        return Years.yearsBetween(dt1, dt2).getYears();
    }
}

From source file:net.technicpack.launcher.ui.components.news.AuthorshipWidget.java

License:Open Source License

private String getDateText(Date date) {
    LocalDate posted = new LocalDate(date.getTime());
    LocalDate now = new LocalDate();

    Years yearsSince = Years.yearsBetween(posted, now);
    Months monthsSince = Months.monthsBetween(posted, now);
    Days daysSince = Days.daysBetween(posted, now);
    Hours hoursSince = Hours.hoursBetween(posted, now);
    Minutes minutesSince = Minutes.minutesBetween(posted, now);

    if (yearsSince.getYears() > 1)
        return resources.getString("time.years", Integer.toString(yearsSince.getYears()));
    else if (yearsSince.getYears() == 1)
        return resources.getString("time.year");
    else if (monthsSince.getMonths() > 1)
        return resources.getString("time.months", Integer.toString(monthsSince.getMonths()));
    else if (monthsSince.getMonths() == 1)
        return resources.getString("time.month");
    else if (daysSince.getDays() > 1)
        return resources.getString("time.days", Integer.toString(daysSince.getDays()));
    else if (daysSince.getDays() == 1)
        return resources.getString("time.day");
    else if (hoursSince.getHours() > 1)
        return resources.getString("time.hours", Integer.toString(hoursSince.getHours()));
    else if (hoursSince.getHours() == 1)
        return resources.getString("time.hour");
    else if (minutesSince.getMinutes() > 1)
        return resources.getString("time.minutes", Integer.toString(minutesSince.getMinutes()));
    else/*from   w  w  w.  ja  va  2s  . c  o m*/
        return resources.getString("time.minute");
}

From source file:op.care.reports.PnlReport.java

License:Open Source License

private void reloadDisplay(final boolean lockmessageAfterwards) {
    /***//  ww w  .  ja v  a 2s.  c  o  m
     *               _                 _ ____  _           _
     *      _ __ ___| | ___   __ _  __| |  _ \(_)___ _ __ | | __ _ _   _
     *     | '__/ _ \ |/ _ \ / _` |/ _` | | | | / __| '_ \| |/ _` | | | |
     *     | | |  __/ | (_) | (_| | (_| | |_| | \__ \ |_) | | (_| | |_| |
     *     |_|  \___|_|\___/ \__,_|\__,_|____/|_|___/ .__/|_|\__,_|\__, |
     *                                              |_|            |___/
     */

    synchronized (contentmap) {
        SYSTools.clear(contentmap);
    }
    synchronized (cpMap) {
        SYSTools.clear(cpMap);
    }

    synchronized (linemap) {
        SYSTools.clear(linemap);
    }
    synchronized (valuecache) {
        SYSTools.clear(valuecache);
    }

    initPhase = true;

    OPDE.getMainframe().setBlocked(true);
    OPDE.getDisplayManager().setProgressBarMessage(new DisplayMessage(SYSTools.xx("misc.msg.wait"), -1, 100));
    final long time = System.currentTimeMillis();

    SwingWorker worker = new SwingWorker() {
        Date max = null;

        @Override
        protected Object doInBackground() throws Exception {

            GUITools.setResidentDisplay(resident);

            if (minmax == null) {
                minmax = NReportTools.getMinMax(resident);
            }

            holidays = Collections.synchronizedMap(
                    SYSCalendar.getHolidays(minmax.getStart().getYear(), minmax.getEnd().getYear()));

            if (minmax != null) {
                max = minmax.getEnd().toDate();
                LocalDate start = SYSCalendar.bom(minmax.getStart()).toLocalDate();
                LocalDate end = resident.isActive() ? new LocalDate()
                        : SYSCalendar.bom(minmax.getEnd()).toLocalDate();

                int maxYears = Years.yearsBetween(start.toDateTimeAtStartOfDay(), end.toDateTimeAtStartOfDay())
                        .getYears();

                int i = 0;
                for (int year = end.getYear(); year >= start.getYear(); year--) {
                    OPDE.debug((System.currentTimeMillis() - time) + " ms");
                    i++;
                    OPDE.getDisplayManager().setProgressBarMessage(
                            new DisplayMessage(SYSTools.xx("misc.msg.wait"), i, maxYears));
                    createCP4Year(year, start, end);
                }

                OPDE.debug((System.currentTimeMillis() - time) + " ms1");
            }

            return null;
        }

        @Override
        protected void done() {
            OPDE.debug((System.currentTimeMillis() - time) + " ms2");
            expandTheLast2Weeks();

            OPDE.debug((System.currentTimeMillis() - time) + " ms3");
            buildPanel();
            OPDE.debug((System.currentTimeMillis() - time) + " ms4");
            initPhase = false;
            OPDE.getDisplayManager().setProgressBarMessage(null);
            OPDE.getMainframe().setBlocked(false);
            if (lockmessageAfterwards)
                OPDE.getDisplayManager().addSubMessage(DisplayManager.getLockMessage());
            if (max != null) {
                OPDE.getDisplayManager().addSubMessage(new DisplayMessage(
                        SYSTools.xx("misc.msg.lastEntry") + ": " + DateFormat.getDateInstance().format(max),
                        5));
            } else {
                OPDE.getDisplayManager()
                        .addSubMessage(new DisplayMessage(SYSTools.xx("misc.msg.noentryyet"), 5));
            }
        }
    };
    worker.execute();
}

From source file:org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanApplicationTerms.java

License:Apache License

public BigDecimal calculatePeriodsBetweenDates(final LocalDate startDate, final LocalDate endDate) {
    BigDecimal numberOfPeriods = BigDecimal.ZERO;
    switch (this.repaymentPeriodFrequencyType) {
    case DAYS://  w  w w.  jav a2  s.  c o m
        int numberOfDays = Days.daysBetween(startDate, endDate).getDays();
        numberOfPeriods = BigDecimal.valueOf((double) numberOfDays);
        break;
    case WEEKS:
        int numberOfWeeks = Weeks.weeksBetween(startDate, endDate).getWeeks();
        int daysLeftAfterWeeks = Days.daysBetween(startDate.plusWeeks(numberOfWeeks), endDate).getDays();
        numberOfPeriods = numberOfPeriods.add(BigDecimal.valueOf(numberOfWeeks))
                .add(BigDecimal.valueOf((double) daysLeftAfterWeeks / 7));
        break;
    case MONTHS:
        int numberOfMonths = Months.monthsBetween(startDate, endDate).getMonths();
        LocalDate startDateAfterConsideringMonths = startDate.plusMonths(numberOfMonths);
        LocalDate endDateAfterConsideringMonths = startDate.plusMonths(numberOfMonths + 1);
        int daysLeftAfterMonths = Days.daysBetween(startDateAfterConsideringMonths, endDate).getDays();
        int daysInPeriodAfterMonths = Days
                .daysBetween(startDateAfterConsideringMonths, endDateAfterConsideringMonths).getDays();
        numberOfPeriods = numberOfPeriods.add(BigDecimal.valueOf(numberOfMonths))
                .add(BigDecimal.valueOf((double) daysLeftAfterMonths / daysInPeriodAfterMonths));
        break;
    case YEARS:
        int numberOfYears = Years.yearsBetween(startDate, endDate).getYears();
        LocalDate startDateAfterConsideringYears = startDate.plusYears(numberOfYears);
        LocalDate endDateAfterConsideringYears = startDate.plusYears(numberOfYears + 1);
        int daysLeftAfterYears = Days.daysBetween(startDateAfterConsideringYears, endDate).getDays();
        int daysInPeriodAfterYears = Days
                .daysBetween(startDateAfterConsideringYears, endDateAfterConsideringYears).getDays();
        numberOfPeriods = numberOfPeriods.add(BigDecimal.valueOf(numberOfYears))
                .add(BigDecimal.valueOf((double) daysLeftAfterYears / daysInPeriodAfterYears));
        break;
    default:
        break;
    }
    return numberOfPeriods;
}

From source file:org.apache.pig.builtin.YearsBetween.java

License:Apache License

@Override
public Long exec(Tuple input) throws IOException {
    if (input == null || input.size() < 2 || input.get(0) == null || input.get(1) == null) {
        return null;
    }/*from   w  w w .  j  a  v  a 2 s.  c om*/

    DateTime startDate = (DateTime) input.get(0);
    DateTime endDate = (DateTime) input.get(1);

    // Larger value first
    Years y = Years.yearsBetween(endDate, startDate);
    // joda limitation, only integer range, at the risk of overflow, need to be improved
    return (long) y.getYears();

}

From source file:org.apache.pig.piggybank.evaluation.datetime.diff.ISOYearsBetween.java

License:Apache License

@Override
public Long exec(Tuple input) throws IOException {
    if (input == null || input.size() < 2) {
        return null;
    }// ww w . ja  va2s. c o m

    // Set the time to default or the output is in UTC
    DateTimeZone.setDefault(DateTimeZone.UTC);

    DateTime startDate = new DateTime(input.get(0).toString());
    DateTime endDate = new DateTime(input.get(1).toString());

    // Larger value first
    Years y = Years.yearsBetween(endDate, startDate);
    long years = y.getYears();

    return years;

}

From source file:org.apache.unomi.plugins.baseplugin.actions.EvaluateProfileAgeAction.java

License:Apache License

@Override
public int execute(Action action, Event event) {
    boolean updated = false;
    if (event.getProfile().getProperty("birthDate") != null) {
        Integer y = Years
                .yearsBetween(new DateTime(event.getProfile().getProperty("birthDate")), new DateTime())
                .getYears();//from w  ww  . j ava  2s  .c o  m
        if (event.getProfile().getProperty("age") == null || event.getProfile().getProperty("age") != y) {
            updated = true;
            event.getProfile().setProperty("age", y);
        }
    }
    return updated ? EventService.PROFILE_UPDATED : EventService.NO_CHANGE;
}

From source file:org.datacleaner.beans.transform.DateToAgeTransformer.java

License:Open Source License

@Override
public Integer[] transform(InputRow inputRow) {
    Integer[] result = new Integer[2];
    Date date = inputRow.getValue(dateColumn);

    if (date != null) {
        long diffMillis = today.getTime() - date.getTime();
        int diffDays = (int) (diffMillis / (1000 * 60 * 60 * 24));

        result[0] = diffDays;/* ww  w.ja  v  a  2  s.  com*/

        // use Joda time to easily calculate the diff in years
        int diffYears = Years.yearsBetween(new DateTime(date), new DateTime(today)).getYears();
        result[1] = diffYears;
    }

    return result;
}

From source file:org.drools.examples.carinsurance.domain.Driver.java

License:Apache License

public int getAge() {
    return Years.yearsBetween(birthDate, new LocalDate()).getYears();
}