List of usage examples for org.joda.time Duration Duration
public Duration(ReadableInstant start, ReadableInstant end)
From source file:it.tidalwave.actor.impl.DefaultCollaboration.java
License:Apache License
/******************************************************************************************************************* * * {@inheritDoc}//from w w w . j a v a 2 s.co m * ******************************************************************************************************************/ @Override @Nonnull public Duration getDuration() { return new Duration(startTime, System.currentTimeMillis()); }
From source file:it.webappcommon.lib.DateUtils.java
License:Open Source License
/** * //from www.j ava2s .c o m * @param _fromDate * @param _fromTime * @param _toDate * @param _toTime * @return */ public static Double calculateDuration(Date _fromDate, Date _fromTime, Date _toDate, Date _toTime) { Double duration; Calendar calFromDate = null; Calendar calFromTime = null; Calendar calToDate = null; Calendar calToTime = null; Date fromDateTime = null; Date toDateTime = null; try { if ((_fromDate != null) && (_fromTime != null) && (_toDate != null) && (_toTime != null)) { logger.debug(String.format("%s=%s", _fromDate, _fromDate.getTime())); logger.debug(String.format("%s=%s", _fromTime, _fromTime.getTime())); logger.debug(String.format("%s=%s", _toDate, _toDate.getTime())); logger.debug(String.format("%s=%s", _toTime, _toTime.getTime())); // calFromDate = new GregorianCalendar(); // calFromDate.setTime(_fromDate); // calFromTime = new GregorianCalendar(); // calFromTime.setTime(_fromTime); // calToDate = new GregorianCalendar(); // calToDate.setTime(_toDate); // calToTime = new GregorianCalendar(); // calToTime.setTime(_toTime); // calFromDate.set(Calendar.HOUR_OF_DAY, // calFromTime.get(Calendar.HOUR_OF_DAY)); // calFromDate.set(Calendar.MINUTE, // calFromTime.get(Calendar.MINUTE)); // calFromDate.set(Calendar.SECOND, // calFromTime.get(Calendar.SECOND)); // calFromDate.set(Calendar.MILLISECOND, // calFromTime.get(Calendar.MILLISECOND)); // // calToDate.set(Calendar.HOUR_OF_DAY, // calToTime.get(Calendar.HOUR_OF_DAY)); // calToDate.set(Calendar.MINUTE, // calToTime.get(Calendar.MINUTE)); // calToDate.set(Calendar.SECOND, // calToTime.get(Calendar.SECOND)); // calToDate.set(Calendar.MILLISECOND, // calToTime.get(Calendar.MILLISECOND)); // calFromDate.setTime(mergeDateTime(_fromDate, _fromTime)); // calToDate.setTime(mergeDateTime(_toDate, _toTime)); // fromDateTime = calFromDate.getTime(); // toDateTime = calToDate.getTime(); // logger.debug(String.format("%s=%s", fromDateTime, // fromDateTime.getTime())); // logger.debug(String.format("%s=%s", toDateTime, // fromDateTime.getTime())); // duration = ((toDateTime.getTime() - fromDateTime.getTime()) / // 1000d / 60d / 60d); // DateTime a = new DateTime(mergeDateTime(_fromDate, // _fromTime)); // DateTime b = new DateTime(mergeDateTime(_toDate, _toTime)); // LocalDateTime a1 = new LocalDateTime(mergeDateTime(_fromDate, // _fromTime).getTime()); // LocalDateTime b1 = new LocalDateTime(mergeDateTime(_toDate, // _toTime).getTime()); // LocalDateTime a1 = mergeLocalDateTime(_fromDate, _fromTime); // LocalDateTime b1 = mergeLocalDateTime(_toDate, _toTime); DateTime a1 = mergeDateTime2(_fromDate, _fromTime); DateTime b1 = mergeDateTime2(_toDate, _toTime); // Duration d = new Duration(a, b); Duration d1 = new Duration(a1.toDateTime(DateTimeZone.UTC), b1.toDateTime(DateTimeZone.UTC)); // logger.debug(String.format("%s", duration)); // logger.debug(d.getMillis() / 1000d / 60d / 60d); logger.debug(d1.getMillis() / 1000d / 60d / 60d); duration = d1.getMillis() / 1000d / 60d / 60d; } else { duration = 0d; } } catch (Exception e) { logger.error("calculateDuration", e); duration = 0d; } finally { calFromDate = null; calFromTime = null; calToDate = null; calToTime = null; fromDateTime = null; toDateTime = null; } // setDuration(duration); return duration; }
From source file:job.myprojects.Task.java
License:Open Source License
private BigDecimal calcDuration() { if (startTime != null && endTime != null && startTime.before(endTime)) { Duration duration = new Duration(startTime.getTime(), endTime.getTime()); return new BigDecimal(duration.getMillis() / (1.0 * DateTimeConstants.MILLIS_PER_HOUR)); }//from w w w. j a va 2s . c o m return BigDecimal.ZERO; }
From source file:jp.co.ntt.atrs.domain.service.b0.TicketSharedServiceImpl.java
License:Apache License
/** * ???????//from www . j ava 2s . com * * @param outwardFlight * @param homewardFlight * @throws BusinessException */ private void validateFlightDepartureDateForRoundTripFlight(Flight outwardFlight, Flight homewardFlight) throws BusinessException { // ??? DateTime outwardArriveDateTime = DateTimeUtil.toDateTime(outwardFlight.getDepartureDate(), outwardFlight.getFlightMaster().getArrivalTime()); // ? DateTime homewardDepartureDateTime = DateTimeUtil.toDateTime(homewardFlight.getDepartureDate(), homewardFlight.getFlightMaster().getDepartureTime()); // ????????? // (???????? // ?????) Duration flightDuration = new Duration(outwardArriveDateTime, homewardDepartureDateTime); if (flightDuration.getStandardMinutes() < reserveIntervalTime) { throw new AtrsBusinessException(TicketReserveErrorCode.E_AR_B2_2001); } }
From source file:kr.debop4j.timeperiod.calendars.DateAdd.java
License:Apache License
/** * ? offset ? ?? .//from w w w.java 2 s .c o m * * @param start ? * @param offset * @param seekDir ? * @param seekBoundary ? * @return ? ?, */ protected Pair<DateTime, Duration> calculateEnd(DateTime start, Duration offset, SeekDirection seekDir, SeekBoundaryMode seekBoundary) { if (isTraceEnable) log.trace( "? ? ?? ... start=[{}], offset=[{}], seekDir=[{}], seekBoundary=[{}]", start, offset, seekDir, seekBoundary); shouldBe(offset.compareTo(Duration.ZERO) >= 0, "offset? 0 ??? . offset=[%d]", offset.getMillis()); Duration remaining = offset; DateTime end; // search periods ITimePeriodCollection searchPeriods = new TimePeriodCollection(this.includePeriods); if (searchPeriods.size() == 0) searchPeriods.add(TimeRange.Anytime); // available periods ITimePeriodCollection availablePeriods = new TimePeriodCollection(); if (excludePeriods.size() == 0) { availablePeriods.addAll(searchPeriods); } else { if (isTraceEnable) log.trace(" ? ."); TimeGapCalculator<TimeRange> gapCalculator = new TimeGapCalculator<>(); for (ITimePeriod p : searchPeriods) { if (excludePeriods.hasOverlapPeriods(p)) { if (isTraceEnable) log.trace(" ? ? ? "); for (ITimePeriod gap : gapCalculator.getGaps(excludePeriods, p)) availablePeriods.add(gap); } else { availablePeriods.add(p); } } } if (availablePeriods.size() == 0) { if (isTraceEnable) log.trace(" period ."); return Pair.create(null, remaining); } if (isTraceEnable) log.trace(" ? ? ? ..."); TimePeriodCombiner periodCombiner = new TimePeriodCombiner<TimeRange>(); availablePeriods = periodCombiner.combinePeriods(availablePeriods); if (isTraceEnable) log.trace(" ? ."); Pair<ITimePeriod, DateTime> result = (seekDir == SeekDirection.Forward) ? findNextPeriod(start, availablePeriods) : findPrevPeriod(start, availablePeriods); ITimePeriod startPeriod = result.getV1(); DateTime seekMoment = result.getV2(); // ? . if (startPeriod == null) { if (isTraceEnable) log.trace(" ? ."); return Pair.create(null, remaining); } // offset ? 0 ??, ? ? seekMoment . if (offset.isEqual(Duration.ZERO)) { if (isTraceEnable) log.trace("offset ? 0?, ? ? seekMoment ."); return Pair.create(seekMoment, remaining); } if (seekDir == SeekDirection.Forward) { for (int i = availablePeriods.indexOf(startPeriod); i < availablePeriods.size(); i++) { ITimePeriod gap = availablePeriods.get(i); Duration gapRemaining = new Duration(seekMoment, gap.getEnd()); if (isTraceEnable) log.trace("Seek forward. gap=[{}], gapRemaining=[{}], remaining=[{}], seekMoment=[{}]", gap, gapRemaining, remaining, seekMoment); boolean isTargetPeriod = (seekBoundary == SeekBoundaryMode.Fill) ? gapRemaining.compareTo(remaining) >= 0 : gapRemaining.compareTo(remaining) > 0; if (isTargetPeriod) { end = seekMoment.plus(remaining); remaining = null; return Pair.create(end, remaining); } remaining = remaining.minus(gapRemaining); if (i == availablePeriods.size() - 1) return Pair.create(null, remaining); seekMoment = availablePeriods.get(i + 1).getStart(); // next period } } else { for (int i = availablePeriods.indexOf(startPeriod); i >= 0; i--) { ITimePeriod gap = availablePeriods.get(i); Duration gapRemaining = new Duration(gap.getStart(), seekMoment); if (isTraceEnable) log.trace("Seek backward. gap=[{}], gapRemaining=[{}], remaining=[{}], seekMoment=[{}]", gap, gapRemaining, remaining, seekMoment); boolean isTargetPeriod = (seekBoundary == SeekBoundaryMode.Fill) ? gapRemaining.compareTo(remaining) >= 0 : gapRemaining.compareTo(remaining) > 0; if (isTargetPeriod) { end = seekMoment.minus(remaining); remaining = null; return Pair.create(end, remaining); } remaining = remaining.minus(gapRemaining); if (i == 0) return Pair.create(null, remaining); seekMoment = availablePeriods.get(i - 1).getEnd(); } } if (isTraceEnable) log.trace(" ?? ."); return Pair.create(null, remaining); }
From source file:kr.debop4j.timeperiod.calendars.DateAdd.java
License:Apache License
/** * start periods? ? ? ? ? , start period . * * @param start ??// www . ja v a 2 s .c o m * @param periods ? * @return period ? ?? */ private static Pair<ITimePeriod, DateTime> findNextPeriod(DateTime start, Iterable<? extends ITimePeriod> periods) { if (isTraceEnable) log.trace("?? ? ? ... start=[{}], periods=[{}]", start, StringTool.listToString(periods)); ITimePeriod nearest = null; DateTime moment = start; Duration difference = TimeSpec.MaxDuration; for (ITimePeriod period : periods) { // ? start ??? (before) if (period.getEnd().compareTo(start) < 0) continue; // start ? ?... if (period.hasInside(start)) { nearest = period; moment = start; break; } // ? ? ? Duration periodToMoment = new Duration(start, period.getStart()); if (periodToMoment.compareTo(difference) >= 0) continue; difference = periodToMoment; nearest = period; moment = period.getStart(); } if (isTraceEnable) log.trace("?? ? ? . start=[{}], moment=[{}], neearest=[{}]", start, moment, nearest); return Pair.create(nearest, moment); }
From source file:kr.debop4j.timeperiod.calendars.DateAdd.java
License:Apache License
/** * start periods ? ? ? ? , start period . * * @param start ??/*from www. j a va 2 s . c o m*/ * @param periods ? * @return period ? ?? */ private static Pair<ITimePeriod, DateTime> findPrevPeriod(DateTime start, Iterable<? extends ITimePeriod> periods) { if (isTraceEnable) log.trace("?? ? ? ... start=[{}], periods=[{}]", start, StringTool.listToString(periods)); ITimePeriod nearest = null; DateTime moment = start; Duration difference = TimeSpec.MaxDuration; for (ITimePeriod period : periods) { // ? start ??? (after) if (period.getStart().compareTo(start) > 0) continue; // start ? ?... if (period.hasInside(start)) { nearest = period; moment = start; break; } // ? ? ? Duration periodToMoment = new Duration(start, period.getEnd()); if (periodToMoment.compareTo(difference) >= 0) continue; difference = periodToMoment; nearest = period; moment = period.getEnd(); } if (isTraceEnable) log.trace("?? ? ? . start=[{}], moment=[{}], neearest=[{}]", start, moment, nearest); return Pair.create(nearest, moment); }
From source file:kr.debop4j.timeperiod.calendars.DateDiff.java
License:Apache License
public DateDiff(DateTime start, DateTime end, ITimeCalendar timeCalendar) { this.start = start; this.end = end; this.difference = new Duration(start, end); this.timeCalendar = (timeCalendar != null) ? timeCalendar : TimeCalendar.getDefault(); }
From source file:kr.debop4j.timeperiod.calendars.DateDiff.java
License:Apache License
private int calcWeeks() { if (Objects.equal(start, end)) return 0; DateTime week1 = Times.getStartOfWeek(start, timeCalendar.getFirstDayOfWeek()); DateTime week2 = Times.getStartOfWeek(end, timeCalendar.getFirstDayOfWeek()); DateDiff.log.trace("week1=[{}], week2=[{}]", week1, week2); if (Objects.equal(week1, week2)) return 0; return (int) (new Duration(week1, week2).getStandardDays() / TimeSpec.DaysPerWeek); }
From source file:kr.debop4j.timeperiod.DateTimeSet.java
License:Apache License
@Override public Duration getDuration() { if (isEmpty()) return null; DateTime min = getMin();//from w ww. j a v a 2s. c o m DateTime max = getMax(); return (min != null && max != null) ? new Duration(min, max) : null; }