List of usage examples for org.joda.time Period toStandardMinutes
public Minutes toStandardMinutes()
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 }