Example usage for org.joda.time Period toStandardMinutes

List of usage examples for org.joda.time Period toStandardMinutes

Introduction

In this page you can find the example usage for org.joda.time Period toStandardMinutes.

Prototype

public Minutes toStandardMinutes() 

Source Link

Document

Converts this period to a period in minutes assuming a 7 day week, 24 hour day, 60 minute hour and 60 second minute.

Usage

From source file:org.kalypso.ui.rrm.internal.timeseries.view.actions.MergeTimeseriesOperation.java

License:Open Source License

private void validateTimeseries(final DateRange baseRange, final Period baseTimestep,
        final DateRange importRange, final Period importTimestep) throws CoreException {
    /* The timesteps must be equal. */
    final Minutes baseMinutes = baseTimestep.toStandardMinutes();
    final Minutes importMinutes = importTimestep.toStandardMinutes();
    if (baseMinutes.getMinutes() != importMinutes.getMinutes())
        throw new CoreException(new Status(IStatus.ERROR, KalypsoUIRRMPlugin.getID(),
                String.format(Messages.getString("MergeTimeseriesOperation.0"), baseTimestep.toString(), //$NON-NLS-1$
                        importTimestep.toString())));

    /* Create the intervals. */
    final Interval baseInterval = new Interval(new DateTime(baseRange.getFrom()),
            new DateTime(baseRange.getTo()));
    final Interval importInterval = new Interval(new DateTime(importRange.getFrom()),
            new DateTime(importRange.getTo()));

    /* Is the base range before the import range? */
    /* Only a gap with one timestep is allowed. */
    if (baseInterval.isBefore(importInterval)) {
        final DateTime baseEnd = baseInterval.getEnd();
        final DateTime importStart = importInterval.getStart();

        final Period gap = new Period(baseEnd, importStart);
        final Minutes gapMinutes = gap.toStandardMinutes();
        if (gapMinutes.getMinutes() > 0 && baseMinutes.getMinutes() != gapMinutes.getMinutes())
            throw new CoreException(new Status(IStatus.ERROR, KalypsoUIRRMPlugin.getID(),
                    String.format(Messages.getString("MergeTimeseriesOperation.1"), baseMinutes.toString(), //$NON-NLS-1$
                            gapMinutes.toString())));
    }//ww w .j a va2 s  . c  om

    /* Is the base range after the import range? */
    /* Only a gap with one timestep is allowed. */
    if (baseInterval.isAfter(importInterval)) {
        final DateTime importEnd = importInterval.getEnd();
        final DateTime baseStart = baseInterval.getStart();

        final Period gap = new Period(importEnd, baseStart);
        final Minutes gapMinutes = gap.toStandardMinutes();
        if (gapMinutes.getMinutes() > 0 && baseMinutes.getMinutes() != gapMinutes.getMinutes())
            throw new CoreException(new Status(IStatus.ERROR, KalypsoUIRRMPlugin.getID(),
                    String.format(Messages.getString("MergeTimeseriesOperation.1"), baseMinutes.toString(), //$NON-NLS-1$
                            gapMinutes.toString())));
    }

    /* Here the intervals touch or overlap. */
}

From source file:org.openvpms.web.jobs.pharmacy.PharmacyOrderDiscontinuationScheduler.java

License:Open Source License

/**
 * Enables pharmacy order discontinuation.
 * <p/>/*  w w w  .  java  2s . co m*/
 * This will activate an existing job if one is available. If not, it will create a new job.
 *
 * @param user   the user the job should be run as
 * @param period the new period
 */
private void enable(User user, Period period) {
    IMObjectQueryIterator<IMObject> active = getJobs(true);
    IMObject config;
    if (active.hasNext()) {
        config = active.next();
    } else {
        // there is currently no active job. Try and activate one
        IMObjectQueryIterator<IMObject> inactive = getJobs(false);
        if (inactive.hasNext()) {
            config = inactive.next();
            config.setActive(true);
        } else {
            // create a new one
            config = service.create(PharmacyOrderDiscontinuationJob.JOB_ARCHETYPE);
        }
    }

    // schedule twice as often as the discontinuation period, with a minimum of 5 minutes
    int total = period.toStandardMinutes().getMinutes();
    int totalDiv2 = total / 2;
    if (totalDiv2 < 5) {
        totalDiv2 = 5;
    }
    int hours = totalDiv2 / 60;
    int minutes = totalDiv2 - (hours * 60);
    IMObjectBean bean = service.getBean(config);
    if (config.isNew()) {
        bean.setTarget("runAs", user);
    }
    if (minutes != 0) {
        bean.setValue("minutes", "*/" + minutes);
    } else {
        bean.setValue("minutes", "0");
    }
    if (hours == 0) {
        bean.setValue("hours", "*");
    } else {
        bean.setValue("hours", "*/" + hours);
    }
    service.save(config);
    log.info("Pharmacy order discontinuation is scheduled to occur every " + totalDiv2
            + " minutes for invoices that have been finalised for " + total + " minutes");
}

From source file:org.projectbuendia.client.utils.RelativeDateTimeFormatter.java

License:Apache License

/** Formats a representation of {@code dateTime} relative to {@code anchor}. */
public String format(DateTime dateTime, DateTime anchor) {
    if (dateTime.isAfter(anchor)) {
        return "in the future"; // TODO/i18n
    }//from  w  ww. ja  v  a2s.  c om
    Period period = new Period(dateTime, anchor);
    int daysAgo = period.toStandardDays().getDays();
    int hoursAgo = period.toStandardHours().getHours();
    int minutesAgo = period.toStandardMinutes().getMinutes();

    return daysAgo > 1 ? daysAgo + " days ago" : // TODO/i18n
            hoursAgo > 1 ? hoursAgo + " hours ago" : // TODO/i18n
                    minutesAgo > 1 ? minutesAgo + " min ago" : // TODO/i18n
                            "right now"; // TODO/i18n
}